Junit5-29-JUnit Platform Launcher API
JUnit Platform Launcher API
JUnit 5最突出的目标之一是使JUnit与其编程客户端(构建工具和ide)之间的接口更加强大和稳定。
目的是将发现和执行测试的内部内容与所有必需的外部过滤和配置分离开来。
JUnit 5引入了启动器的概念,可以用来发现、过滤和执行测试。此外,第三方测试库——如Spock、Cucumber和FitNesse——可以通过提供自定义测...
2018-06-26 08:29:42 |
Test
Junit5-28-Ex Excution Order
用户代码和扩展的相对执行顺序
当执行包含一个或多个测试方法的测试类时,除了用户提供的测试和生命周期方法外,还会调用许多扩展回调。
相对顺序
下图说明了用户提供的代码和扩展代码的相对顺序。
BeforeAllCallBack //(1)
@BeforeAll //(2)
BeforeEachCallBack //(3)
@Before...
2018-06-26 07:49:26 |
Test
Junit5-27-Ex Util
拓展中支持的工具类
junit-platform-commons 构件公开了一个名为 org.junit.platform.commonsupport 的包,
该包包含维护的实用方法,用于处理注释、类、反射和类路径扫描任务。
我们鼓励 TestEngine 和扩展作者使用这些受支持的方法,以便与JUnit平台的行为保持一致。
注解支持
AnnotationSupport 提供对带注释...
2018-06-26 07:49:26 |
Test
Junit5-26-Ex Keeping State in Extensions
在 Extensions 中保存状态
通常,一个扩展只实例化一次。
因此,问题变得相关了:如何将状态从一个扩展调用保存到下一个扩展?ExtensionContext API为此目的提供了一个存储。
扩展可以将值放入存储中以便以后检索。
请参阅 TimingExtension,了解如何使用带有方法级范围的存储。
重要的是要记住,在测试执行期间存储在 ExtensionContext 中的值...
2018-06-26 07:32:41 |
Test
Junit5-25-Ex Test Context
测试上下文
@TestTemplate方法只能在注册至少一个TestTemplateInvocationContextProvider时执行。
每个这样的提供者都负责提供TestTemplateInvocationContext实例流。
每个上下文可以指定一个自定义显示名称和一个附加扩展列表,这些扩展只用于@TestTemplate方法的下一次调用。
实例
下面的示例展示了如何编写...
2018-06-26 06:51:52 |
Test
Junit5-24-Ex Exception Handle
TestExecutionExceptionHandler
TestExecutionExceptionHandler 为希望处理测试执行期间抛出的异常的扩展定义了API。
下面的示例显示了一个扩展,该扩展将包含IOException的所有实例,但将重新抛出任何其他类型的异常。
实例
IgnoreIOExceptionExtension.java
public class ...
2018-06-26 06:51:52 |
Test
Junit5-23-Ex Test Lifecycle Callbacks
测试声明周期回调
接口
下面的接口定义了在测试执行生命周期的各个点上扩展测试的api。请参阅下面的小节,了解示例和Javadoc中的每个接口
参见 org.junit.jupiter.api.extension
实现多个扩展api
扩展开发人员可以选择在一个扩展中实现任意数量的这些接口。
有关具体示例,请参阅 SpringExtension 的源代码。
开始和结束的回调...
2018-06-26 06:44:46 |
Test
Junit5-22-Ex Parameter Resolution
ParameterResolver
ParameterResolver 定义用于在运行时动态解析参数的扩展API。
如果测试构造函数或@Test、@RepeatedTest、@ParameterizedTest、@TestFactory、@BeforeEach、@BeforeAll或@AfterAll方法接受一个参数,那么参数必须在运行时由一个参数解析器解析。
参数解析器可以是内置的(...
2018-06-26 06:33:07 |
Test