@ValueSource(classes = .....)的用途是什么

时间:2019-06-20 18:17:22

标签: junit5

在《 JUnit5用户指南》中,提到了@ValueSource可以使用的一种类型是java.lang.Class

此功能的用例是什么?我该怎么用?

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

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

}

1 个答案:

答案 0 :(得分:1)

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

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