3 回答

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個贊
你有沒有@Rule
JUnit 4中應(yīng)做與Extension
在JUnit的5提供了一個非常緊密的功能
所以,你可以創(chuàng)建例如分機(jī)EnvironmentVariablesExtension
所執(zhí)行你的邏輯@Rule
,并通過注釋您的測試類使用它在你的單元測試(ES)@ExtendWith(EnvironmentVariablesExtension.class)
。
請注意,如果@Rule
在單個單元測試類中使用單個,則可以將此邏輯移入@BeforeEach
每次運(yùn)行測試之前調(diào)用的lifecyle方法。
如果只有幾個類setup
在單個項(xiàng)目中使用此類,則仍可以引入一個抽象基測試類,該抽象基測試類在@BeforeEach
方法中進(jìn)行此設(shè)置,并使單元測試類繼承自該基類。
的最大價值之一@Rule
是當(dāng)您要為單元測試定義多個規(guī)則時,或者要在其他應(yīng)用程序/項(xiàng)目中重用規(guī)則時。并非如此,不要像Extension
在JUnit5中那樣引入它們并保持目前的簡單性。

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個贊
我認(rèn)為您的關(guān)鍵字存在問題final
。刪除它,它應(yīng)該可以工作,
嘗試這樣:
@Rule public EnvironmentVariables environmentVariables = new EnvironmentVariables();
final =定義只能分配一次的實(shí)體
所以從我的角度來看,這困擾著您。
添加回答
舉報