通常说,单元测试必须要有很强的可读性,在使用参数化测试时,我们怎么去保证可读性呢?
你可以通过@ParameterizedTest注解的name属性来自定义调用的显示名称,它提供了参数占位符的功能:
@DisplayName("Display name of container")
@ParameterizedTest(name = "{index} ==> first=''{0}'', second={1}")
@CsvSource({ "foo, 1", "bar, 2", "'baz, qux', 3" })
void testWithCustomDisplayNames(String first, int second) {
执行上面方法,你会看到类似于下面的输出。
Display name of container ✔
├─ 1 ==> first='foo', second=1 ✔
├─ 2 ==> first='bar', second=2 ✔
└─ 3 ==> first='baz, qux', second=3 ✔
JUnit 5 提供的参数化测试,能够消除重复代码,加快我们写测试的速度,同时也能够保证很好的可读性。
中间介绍那几个注解和聚合的示例代码是用的官方文档的,官方文档上面已经写得很清楚了,就懒得再自己写Demo了。
比较推荐的是@CsvSource和参数聚合这两个功能~