正如一本相當老的書所寫XUnit Patterns NUnit 2.0沒有爲每個測試創建新的測試裝置,並且因爲如果測試正在操縱某些狀態的固定裝置,它會變得共享並可能導致各種不良副作用。NUnit現在是否爲每個包含的測試方法創建測試夾具類的新實例?
這仍然是一樣的嗎?我試圖在官方網站上找到它,但失敗了,並沒有使用NUnit一段時間。
正如一本相當老的書所寫XUnit Patterns NUnit 2.0沒有爲每個測試創建新的測試裝置,並且因爲如果測試正在操縱某些狀態的固定裝置,它會變得共享並可能導致各種不良副作用。NUnit現在是否爲每個包含的測試方法創建測試夾具類的新實例?
這仍然是一樣的嗎?我試圖在官方網站上找到它,但失敗了,並沒有使用NUnit一段時間。
夾具爲該夾具中的所有測試創建一次。
對於給定的fixture類,FixtureSetup方法對夾具中的所有測試運行一次,並且Setup方法對每個測試運行一次。因此,任何需要重置的狀態都應該使用設置方法(或每次測試結束時運行的TearDown)完成。
我發現這是一個影響到我的問題,並且還發現此鏈接這爲這個問題提供了一些歷史; https://blogs.msdn.microsoft.com/jamesnewkirk/2004/12/04/why-variables-in-nunit-testfixture-classes-should-be-static
我認爲,我們當時寫到NUnit的V2.0是不是每載測試方法創建測試夾具類的新實例,這是取得了最大的螺桿式窗口之一。
尚未測試這在V3,看看它改變
這是相同的(單一夾具實例重新用於所有的測試)截至NUnit v3.9。 –
注意的NUnit新版本替換爲「FixtureSetup」與「OneTimeSetUp」 – Pedro