2017-08-20 59 views
1

最近,我在基於NUnit Framework(版本3.7.1.0)的ASP.NET MVC項目中添加了一個測試項目。我知道NUnit中有一些屬性以及其他框架,我們可以將它們添加到我們的類和方法中,以編寫更好的測試用例。NUnit框架生命週期執行順序是什麼?

下面是其中介紹了NUnit的文檔屬性:

  • 的SetUp
  • TearDown中
  • TestFixtureSetUp
  • TestFixtureTearDown

我想知道的執行順序和性能考慮在幕後實施。

回答

2

我想知道的執行順序

相關TestFixture設置/ TearDown將只會一次的TestFixture執行。與Test相關的Setup/TearDown方法將執行每個測試。這裏是在中間一環的順序:

TestFixtureSetUp // executed once before first test SetUp 
    SetUp   // excuted before *each* test 
    TearDown   // executed after *each* test 
TestFixtureTearDown // executed once after last test TearDown 

我用SetUp方法移動有代碼重複在安排測試一部分。通常你通過創建它並提供所需的模擬依賴關係來初始化SUT中的SetUp方法。

TestFixtureSetUp更全球化 - 它爲夾具中的所有測試準備戰場。通常,我用它來初始化一些環境 - 例如用一些初始數據創建數據庫和/或設置表。 TestFixtureTearDown用於刪除該數據庫。當然,環境初始化與單元測試無關 - 這是驗收測試。

幕後性能考慮實施該

同任何其他方法調用。這取決於你要將哪些設置或拆卸方法。

+2

請注意,'TestFixtureSetUp'和'TestFixtureTearDown'在NUnit 3中已棄用,有利於'OneTimeSetUp'和'OneTimeTearDown'。 – Charlie

相關問題