解釋JUnit中@BeforeClass和@AfterClass標注的方法必須是static的,而在TestNg不必


在JUnit中@BeforeClass和@AfterClass標注的方法必須是static的;但是在TestNg中卻沒有這樣的限制,這是為什么呢。

其實和他們兩的運行機制有關。

 

在junit中:

每運行一個@Test方法,就會為該測試類新建一個新的實例。(所以@BeforeClass和@AfterClass必須是static的,因為運行他們的時候,測試類還沒有實例化呢。)

有沒有發現這有助於提高測試方法之間的獨立性,因為每個@Test執行的時候,都新建了一個實例,這樣的話,可以避免測試方法之間重用各個@Test方法里面的變量值。

舉例:

 

測試結果:

 

 

而在TestNg中@BeforeClass和@AfterClass方法就沒嚴格要求要是static。

因為運行testNg的時候,對一個類只會實例化一次。

舉例:

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM