3 回答

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

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