- 排除spring-boot-starter-test和junit-jupiter的间接依赖关系:
org.springframework.boot
spring-boot-starter-test
test
org.junit.jupiter
junit-jupiter
- 添加junit-jupiter依赖,此时会使用dependencyManagement中指定的版本号:
org.junit.jupiter
junit-jupiter
test
- 如下图,刷新可见已经用上了5.7.0版本:
- 版本问题解决了,接下来正式开始学习Parameterized Tests,先要了解的是有哪些数据源;
ValueSource数据源
- ValueSource是最简单常用的数据源,支持以下类型的数组:
short
byte
int
long
float
double
char
boolean
java.lang.String
java.lang.Class
- 下面是整形数组的演示:
@Order(2)
@DisplayName(“多个int型入参”)
@ParameterizedTest
@ValueSource(ints = { 1,2,3 })
void intsTest(int candidate) {
log.info(“ints [{}]”, candidate);
assertTrue(candidate<3);
}
- 从上述代码可见,入参等于3的时候assertTrue无法通过,测试方法会失败,来看看实际执行效果,如下图:
null、空字符串数据源
- 在用字符串作为入参时,通常要考虑入参为null的情况,此时ValueSource一般会这样写:
@ValueSource(strings = { null, “a”, “b”, “c” })
- 此时可以使用@NullSource注解来取代上面的null元素,下面这种写法和上面的效果一模一样:
@NullSource
@ValueSource(strings = { “a”, “b”, “c” })
- 执行结果如下图红框,可见null作为入参被执行了一次: