本节主要笔记扩展模块的相关知识
What
JUnit5提供了一个扩展模型,它可以用来扩展JUnit的核心功能,本节重点看扩展模型的简单用法。分为定义和使用2个部分
定义
JUnit5定义了一组可扩展的接口
通过实现这些接口,从而获得扩展的能力。
Conditional Test Execution
ExecutionCondition接口用来扩展测试是否执行或者跳过
1 | public class TestCondition implements ExecutionCondition { |
Test Instance Factories
TestInstanceFactory接口的用法我也还不清楚怎么用,可能是没有掌握@TestFactory原因
Test Instance Post-processing
TestInstancePostProcessor接口用在执行测试方法之前做一些初始化的业务,执行顺序在BeforeEach 之前BeforeAll之后
Parameter Resolution
ParameterResolver用来在运行时解析方法参数
Test Result Processing
实现TestWatcher接口用来处理测试用例在各种结果下的业务处理,包括执行禁止,执行中断,执行成功或失败
Test Lifecycle Callbacks
用在测试用例执行的各个阶段的回掉
Before and After Test Execution Callbacks
用来在测试方法执行前后的回掉业务,文档中给出了一个记录测试用例执行时间的示例
Exception Handling
TestExecutionExceptionHandler接口用来处理测试过程中产生的异常
Providing Invocation Contexts for Test Templates
略过
Keeping State in Extensions
一个容器,用来记录测试过程中的需要暂存的数据
使用
使用就很简单了
1 | @Test |
或者
1 | @Test |
总结
JUnit5提供了相当丰富的一组扩展用来满足一些特别的测试场景,感觉挺好用的样子。