正确的参数化测试 class 在 JUnit 5 中失败
Correcty parameterized test class fails in JUnit 5
我对使用 JUnit 5 进行单元测试有疑问,
也就是说,当我 运行 测试带有参数化注释的方法时,它失败了,但我认为一切都是正确的。它是 JUnit 5 代码:
@Test
@ParameterizedTest
@MethodSource("data")
public void test(int e){
System.out.println("e = " + e);
}
private static Stream data(){
return Stream.of(
Arguments.of(1),
Arguments.of(2)
);
}
它失败了:
,我尝试了自定义参数化解析器,但出现了另一个错误:它没有 return 从 data() 函数传递值,而是 return 中定义的默认值 resolveParameter( ) CustomParameterResolver class 中的函数。如何解决这个问题?
使用 @ParameterizedTest
时不需要 @Test
,因为这会导致额外执行测试。此额外执行需要将 int
传递给测试,但没有用于此的解析器,因此测试失败并出现您发布的异常。
@ParameterizedTest
@MethodSource("data")
public void test(int e){
System.out.println("e = " + e);
}
private static Stream data(){
return Stream.of(
Arguments.of(1),
Arguments.of(2)
);
}
我对使用 JUnit 5 进行单元测试有疑问, 也就是说,当我 运行 测试带有参数化注释的方法时,它失败了,但我认为一切都是正确的。它是 JUnit 5 代码:
@Test
@ParameterizedTest
@MethodSource("data")
public void test(int e){
System.out.println("e = " + e);
}
private static Stream data(){
return Stream.of(
Arguments.of(1),
Arguments.of(2)
);
}
它失败了:
,我尝试了自定义参数化解析器,但出现了另一个错误:它没有 return 从 data() 函数传递值,而是 return 中定义的默认值 resolveParameter( ) CustomParameterResolver class 中的函数。如何解决这个问题?
使用 @ParameterizedTest
时不需要 @Test
,因为这会导致额外执行测试。此额外执行需要将 int
传递给测试,但没有用于此的解析器,因此测试失败并出现您发布的异常。
@ParameterizedTest
@MethodSource("data")
public void test(int e){
System.out.println("e = " + e);
}
private static Stream data(){
return Stream.of(
Arguments.of(1),
Arguments.of(2)
);
}