Junit中的代碼有什么區別:class MethodsTest { Methods methods = new Methods();}還有這些:class MethodsTest { Methods methods; @BeforeEach void init() { methods = new Methods(); }}何時使用第一個代碼,何時使用第二個代碼?
2 回答

開心每一天1111
TA貢獻1836條經驗 獲得超13個贊
如果不涉及繼承,則沒有區別。
如果要擴展MethodsTest
類,則可以覆蓋該init()
方法,并且覆蓋方法不一定直接初始化字段,或者可能通過調用間接初始化super.init()
; 或者它可以以不同的方式初始化它。
就個人而言,我更喜歡第一個。它更簡潔,不可覆蓋,而且它的語義對于任何熟悉 Java 的人來說都是顯而易見的,即使沒有特定于 JUnit 的知識。

江戶川亂折騰
TA貢獻1851條經驗 獲得超5個贊
在第一個版本中,您希望您正在使用的特定測試運行程序在執行特定測試時創建一個MethodsTest
隱式創建新實例的新實例Methods
。在第二個版本中,您告訴測試運行器您Methods
在執行新測試時顯式使用創建一個新實例。
添加回答
舉報
0/150
提交
取消