最近,我正在閱讀本書Growing Object-Oriented Software, Guided by Tests
,我對他們對Junit行爲的描述感到困惑。通過方法或類創建每個Junit實例
如果我理解作者說的話,Junit會創建一個測試類的新實例,並在每個測試方法中確保它們彼此隔離。
要運行測試,JUnit將創建一個新的測試類實例,並調用相關的測試方法。每次創建一個新的測試對象 可確保測試彼此隔離,因爲在每次測試之前將替換對象的字段。這意味着測試 可以自由更改任何測試對象字段的內容。
然後他們說,在NUnit的(淨)是不同的,因爲它重複使用相同的測試對象爲所有的測試方法,所以你需要使用Setups
和TearDowns
重置對象。
NUnit的從JUnit的表現不同那些在
.Net
工作應注意 NUnit的重用所有 測試方法測試對象的同一實例,這樣有可能改變的任何值必須要麼在 [設置]重置和[TearDown]方法(如果它們是字段)或本地化爲測試方法 。
雖然JUnit的行爲就像他們描述的NUnit行爲一樣,所以您的類實例可以在同一個類中重用,並且您可以使用Setups和TearDown來重置它們。因此,JUnit的行爲如何,它在每個方法中實例化測試類,否則它會立即測試類。
也許我不明白作者的意思。他們是什麼意思?
描述是正確的,JUnit爲每個測試創建一個新對象。親自嘗試一下。 – markspace
@markspace是的,我誤解了JUnit的行爲 – Pau
並且NUnit的描述也是正確的。不同的軟件,針對不同的平臺,由不同的人編寫,具有不同的願景。:-) – Charlie