何时在Junit 5中使用动态测试

3

我一直在阅读Junit 5.0的文档。注意到新的方法被引入了——@TestFactory。当您需要创建一个这样的测试工厂时,使用@TestFactory会有什么好处呢?

Peter


似乎是testng @Factory的等效物 - 可在此处查看http://testng.org/doc/documentation-main.html - Naman
1个回答

3
动态测试生成在需要在许多不同的输入值或配置上运行相同的测试集时非常有用。
@TestFactory
Stream<DynamicTest> dynamicTestsFromIntStream() {
    // Generates tests for the first 10 even integers.
    return IntStream.iterate(0, n -> n + 2).limit(10).mapToObj(
            n -> dynamicTest("test" + n, () -> assertTrue(n % 2 == 0)));
}

还有一个更复杂的例子。您可以定义自己的DSL来描述测试套件并将其存储在非源文件中。然后,您可以相应地读取和处理这些文件,并根据输入生成动态测试。


3
为什么使用数据驱动测试比只用参数化测试或在基本循环中创建数字并进行断言更好? - beatrice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接