[英]JUnit 5 Before TestFactory Annotation
我已經在 JUnit5 中編寫了動態測試@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 方法生成的動態測試之間的擴展重置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.