本文转自测试人社区,原文链接: https://ceshiren.com/t/topic/28217
概念
- 动态测试是 JUnit5 中引入的一种新的编程模型。
- 这种新的测试就是动态测试,它是由
@TestFactory
注解的工厂方法在运行时生成的。
什么是动态测试
- 动态测试:就是
DynamicTest
在运行的时候动态的生成测试用例。
- 由
@TestFactory
注解声明的方法。
- 静态测试:
@Test
注解的测试用例,因为该用例在编译时已经完全指定好的
动态测试与静态测试区别
- 与
@Test
方法相比,@TestFactory
方法本身不是测试用例,而是测试用例的工厂。
- 所以得到结论:动态测试是工厂的产物。
- 动态测试
DynamicTest
与标准@Test
用例完全不同
- 执行方式不同,动态测试「DynamicTest」不支持生命周期回调。
动态测试的构成
- 方法上必须有
@TestFactory
注解。 - 由显示名称和Executable组成。
- 方法返回值类型。「流、集合、迭代器」
Stream Collection Iterable Iterator DynamicNode
> 如果不返回以上类型会发生什么?
动态测试的构成
- 返回其它类型报错:JUnitException
创建
- 静态测试用例
- 动态测试用例
pom文件
静态测试用例创建
改编静态测试为动态测试
结论
- 动态测试是在运行时通过工厂方法使用@TestFactory 注解生成的测试。
- 标记为@TestFactory 的方法不是测试用例,而是测试用例的工厂