簡體   English   中英

單元測試代碼的最佳位置

[英]Best location for unit test code

我有一個多項目解決方案,我希望將單元測試應用到。 該項目封裝良好,大多數單元測試僅使用他們正在測試的項目中的類。

我還有一些集成測試用例,用於測試多個項目的交互。

顯然,我可以將所有測試代碼放在一個單獨的項目中,但我對創建一個在整個解決方案中具有依賴關系的Great Project的想法持謹慎態度。

為每個項目中的單元測試創​​建一個私有類是否更好,並且有一個單獨的集成測試項目? 或者沒有明顯的建築效益?

您應該將單元測試放入單獨的程序集中。 通過這樣做,您可以確保它們不屬於任何已發布的產品。

如果您采用的慣例是測試項目的名稱中包含單詞Test ,那么在最終構建輸出中刪除外卡是一件簡單的事情,以確保您不會發送測試程序集。

我對創建一個通過整個解決方案具有依賴性的Great Project的想法持謹慎態度

隨着您的解決方案規模的擴大,您可以將測試分解為針對應用程序特定區域的程序集 - 您可以從單片測試程序集開始,然后在有意義的時候將其拆分。

擁有使用包含大約110個項目(包括單元測試項目)的解決方案的經驗,我可能需要添加一些內容

  • 擁有許多小項目會增加您的構建時間,而不是擁有更大的項目。 根據編輯的大小和復雜程度,這可能是您擔心的問題。

我使用過的一個實現使用了類似這樣的項目結構:

- CompanyName.Feature
- CompanyName.Fetaure.Test.Unit
- CompanyName.Feature.Test.Integration
- CompanyName.Feature.Test.Load
- etc...

與整體測試項目相比,這種粒度級別是一種改進; 但是,我覺得有更好的方法

而不是打破所有測試, 而是確保您按功能測試功能。 那時我會很自在地將我的單元和集成測試放在同一個項目中,映射到不同的文件夾。 理想情況下是這樣的:

 - CompanyName.Feature
 - CompanyName.Feature.Test
      \Unit
      \Integration
      \Load
      \etc...
  1. 假設您的代碼庫當前沒有遇到循環依賴的某些問題,這也應該最小化跨代碼庫的引用。
  2. 如果您編寫任何有助於測試的代碼(即:生成測試數據) ,您也可以在單元和集成測試之間共享它。

暫無
暫無

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

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