簡體   English   中英

測試套件設置方法是針對每個測試執行一次,還是僅針對所有測試執行一次?

[英]Is the test suite setup method executed once for each test, or only once for all?

我知道每個測試框架的答案可能不同。 但對於你知道的人,會發生什么?

在NUnit中,您有TestFixtureSetUp ,它只在夾具運行中的所有測試之前運行一次,而SetUp在每個測試方法運行之前運行。

在MSTest中,您有TestInitializeAttribute

在負載測試中運行時,使用此屬性標記的方法將針對測試中的每個虛擬用戶迭代運行一次。 如果需要執行一次適用於整個測試的初始化操作,請使用ClassInitializeAttribute

AssemblyInitializeAttribute對所有類中的所有測試運行一次。

這自然取決於框架,對於具體的答案,您應該檢查相關文檔。

設置測試方法,或者固定裝置很有用,但不應濫用它們。 如果單元測試有復雜的設置方法,你可以說它們更像是集成測試,因此應該重構。 復雜的測試設置是代碼氣味。 另一方面,明智地使用設置方法可以減少重復並使測試更具可讀性和可維護性。

junit4中,您可以使用注釋來標記這兩種設置/拆卸方法。 以下是摘要:

  • 在每個測試套件使用@BeforeClass 之前運行安裝程序
  • 在每個測試套件使用@AfterClass 運行拆卸
  • 在套件中的每個測試方法之前運行設置使用@Before
  • 在套件中的每個測試方法使用@After 運行拆卸

暫無
暫無

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

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