簡體   English   中英

JUnit 5 之前的 TestFactory 注釋

[英]JUnit 5 Before TestFactory Annotation

我已經在 J​​Unit5 中編寫了動態測試@TestFactory ,現在我看到我不能為動態測試做@Before ,參考JUnit 5 用戶指南 - 編寫測試注釋

是否有任何解決方法可以在 TestFactory 之前執行@Before或類似操作?

我想放入@Before因為它只是初始化的東西:

public static void initialize() throws Exception{
    buildTest = new XQueryTestHelper();
    buildTest.initialization();
    
    listTestSuiteIdentifier = buildTest.getListTestsuiteIdentifier();
    arrayHdrInbPayTestcases = buildTest.getHdrInbPayTestcases();
    arrayHeaderAndBodyTestcases = buildTest.getHeaderAndBodyTestcases();
    listHeaderAndBodyTestSuites = buildTest.getHeaderAndBodyTestSuites();
    listHdrInbPayTestSuites = buildTest.getHdrInbPayTestsuites();
    
}

解決方案:

在動態測試中可以使用@BeforeAll / @AfterAll 參考改進 DynamicTest 生命周期的文檔

動態測試生命周期

動態測試的執行生命周期與標准@Test例的執行生命周期完全不同。 具體來說,動態測試沒有任何生命周期回調。 這意味着@BeforeEach@AfterEach方法及其相應的擴展回調不會為動態測試執行。 換句話說,如果您在動態測試的 lambda 表達式中訪問測試實例中的字段,則這些字段將不會被回調方法或在執行由同一@TestFactory方法生成的動態測試之間的擴展重置。

在動態測試中可以使用@BeforeAll / @AfterAll 參考改進 DynamicTest 生命周期的文檔

動態測試生命周期

動態測試的執行生命周期與標准 @Test 用例的執行生命周期完全不同。 具體來說,動態測試沒有任何生命周期回調。 這意味着 @BeforeEach 和 @AfterEach 方法及其相應的擴展回調不會為動態測試執行。 換句話說,如果您在動態測試的 lambda 表達式中訪問測試實例中的字段,則這些字段將不會被回調方法或在執行由同一 @TestFactory 方法生成的動態測試之間的擴展重置。

使用@BeforeAll@AfterAll不是(還)可以在動態測試。

正在努力實現這一點,但似乎開發人員尚未決定如何完成。

我自己決定暫時手動調用我的設置方法,這非常難看。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM