簡體   English   中英

名稱空間是否分層?

[英]Are namespaces hierarchical?

C#名稱空間是否分層?

背景:我正在開發一個測試框架,我有每個命名空間的設置夾具。 例如,命名空間A中的SetUpFixture和命名空間AB中的SetUpFixture

實際問題:如果我調用TestRunner.RunAllTestsInNamespace("AB") - 測試運行器是否應僅調用命名空間AB中的SetUpFixture或命名空間A中的SetUpFixture?

(或者TestRunner.RunAllTestsInNamespace("A") :如果我調用TestRunner.RunAllTestsInNamespace("A") - 測試運行器是否也應該執行命名空間AB中的所有測試?

關於你的問題:

如果我調用TestRunner.RunAllTestsInNamespace(“AB”) - 測試運行器是否應僅調用命名空間AB中的SetUpFixture或命名空間A中的SetUpFixture?

假設你有結構:

A.Setup1
A.Test1
A.B.Setup2
A.B.Test2

如果您在現有框架(例如NUnit)中執行一些簡單測試,您會發現所遵循的行為似乎是:

  • 運行A.Test1執行A.Setup1A.Test1
  • 運行ABTest2執行A.Setup1ABSetup2ABTest2

這是NUnit的行為。 其他人可能表現不同。

您可能希望完全調查和了解現有測試框架(NUnit,XUnit.Net,MSTest,其他)的行為。

是。 命名空間是分層的。

是命名空間是分層的,但問題是API設計。 我想由你來定義你想要實現的行為。

可以肯定的是,它是另一種方式(問題的第二種方式):運行(“AB”)肯定不會在“A”中運行測試。 因為A不包含在AB中 - > AB包含在A.

為什么沒有可選參數呢?

public void RunTests(string @namespace, bool runChildNamespaces = true)

使用此API設計:

  • 實施只是稍微復雜一點
  • 你獲得了一些靈活性
  • 調用該方法的編碼人員的預期行為非常明確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM