我正在将测试方法从单个参数修改为多个:
@ParameterizedTest
@NullSource
@ValueSource({"foo", "bar"..})
void shouldReturnFalse(String x) {
assertThat(someMethod(x)).isFalse();
}
@ParameterizedTest
@CsvSource({
"null, null",
"foo, bar"
})
void shouldReturnFalse(String x, String y) {
assertThat(someMethod(x, y)).isFalse();
}
此处的 null
作为字符串文字而不是空文字传入。结果,此测试失败。此测试以前使用带有 @NullSource
的单个参数,但切换到多个时会出现以下错误:
org.junit.jupiter.api.extension.ParameterResolutionException:没有为参数注册 ParameterResolver...
我找不到解决方法,而且我看到的解决方案相当笨拙和麻烦。有没有更简单的方法用 null
提供值?
您可以使用@Jan Schmitz上面解释的nullvalues,也可以像这样丢弃零值: