@ValueSource(classes=.....) 有什么用

ort*_*tiv 5 junit5

在 JUnit5 用户指南中提到,可用于的类型之一@ValueSourcejava.lang.Class.

此功能的用例是什么?我该如何使用它?

@ParameterizedTest
@ValueSource(classes = {/*What goes here?*/})

void test(/*What goes here?*/) {

}
Run Code Online (Sandbox Code Playgroud)

小智 2

类文字没有什么特别的。@ValueSource允许我们指定不同类型的文字值,并且 Java 支持文字值来引用对 class 实例的引用Class<?>。因此,这些最终将成为我们正在编写的任何参数化单元测试的输入。例如:

@ParameterizedTest
@ValueSource(classes = { String.class, Integer.class })
void testWithValueSource(Class<?> argument) {
    assertEquals( "java.lang", argument.getPackage().getName());
}
Run Code Online (Sandbox Code Playgroud)