如何使用在JUnit 5的其他类中定义的@MethodSource

时间:2018-12-30 06:02:31

标签: junit5

是否可以使用@MethodSource来使用其他类中定义的方法?

例如,下面的代码有效,因为stringProvider方法是在同一类中定义的。

 @ParameterizedTest
    @MethodSource("stringProvider")
    void methodSourceFromOtherClass(String word)
    {
        System.out.println(word);
        assertNotNull(word);
    }

public static Stream<Arguments> stringProvider()
    {
        return Stream.of(
                Arguments.of("Values"),
                Arguments.of("From"),
                Arguments.of("MethodSource"));

    }

我有一些实用程序类,可提供测试数据。如何使用@methodSource中外部类的方法?

1 个答案:

答案 0 :(得分:4)

从外部类引用方法的语法

@MethodSource("fullyQualifiedClassName#methodName")

例如

@ParameterizedTest
@MethodSource("com.niraj.DataProvider#stringProvider")
void methodSourceFromOtherClass(String word) {
    System.out.println(word);
    assertNotNull(word);
}