Junit5 之Dynamic Test初探
Contents
之前的@Test注解跟之前junit4的差别不大,都是编译期就确定的,运行期不能改变。
Junit5添加的Dynamic test就是为了弥补这一不足。Assumptions提供了比较基础的方式提供的动态行为。
Junit Jupiter引入的全新的编程模型,使用@TestFactory 在运行期生成工厂方法,来实现动态行为。
@TestFactory与@Test 比本身不是测试用例,是测试用例的工厂,一个dynamic test是共产的产品。
@TestFactory必须返回,一个单独的 DynamicNode 或 一个 Stream, Collection, Iterable, Iterator, 或 DynamicNode 实例数组。
DynamicContainer和DynamicTest是DynamicNode的子类。DynamicContainer是一个显示的名字和动态节点的集合。
DynamicTest 实例会延迟执行,即使没有明确的用例,也会动态化。是显示名字和Executable组合,Executable是@FunctionalInterface接口可执行lambda表达式。