何时使用@IncludeEngines以及何时使用Junit5的@ ExtendWith

时间:2018-01-31 03:27:57

标签: unit-testing spring-boot build.gradle junit5 spring-boot-test

请支持我理解和混淆何时使用 @IncludeEngines以及何时在JUnit 5中使用@ExtendWith

如果这个问题太基础,请道歉。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

@ExtendWith用于注册自定义extensions

就JUnit4构造而言:@RunWith@Rule@ClassRule都已被@ExtendWith取代。虽然JUnit 5确实保留了limited support for rules,但JUnit团队的强烈建议是转向使用@ExtendWith

有一些常见的JUnit4规则重新实现为JUnit5扩展here

@IncludeEngines指定在JUnit平台上运行测试套件时要包含的org.junit.platform.engine.TestEngine实现。虽然这是org.junit.platform.suite.api,因此可供开发人员使用,但我无法想到您需要使用它的任何情况。它可用于接合特定的引擎,例如老式引擎而不是JupiterTestEngine,但这意味着需要在JUnit4环境中运行测试,这可以使用@RunWith(JUnitPlatform.class)来实现。

认为是否需要使用@IncludeEngines?如果是这样,我建议您解释为什么您认为需要使用它,并且您可能会发现还有其他方法可以使用JUnit5,而不需要使用@IncludeEngines