使用@ParameterizedTest和@RunWith(Parameterized.class)时的JUnit5(Vintage)initializationError

问题描述 投票:0回答:1

当我尝试使用JUnit 5的参数化功能时,我偶然发现了一个initializationError。

@ExtendWith(MockitoExtension.class)
@RunWith(Parameterized.class)
public class ServiceTest {

    @InjectMocks
    Service service;

    private static Stream<Arguments> getArguments() {
        return Stream.of(
                Arguments.of("something", "result1", "result2"),
                Arguments.of("another", "result3", "result4")
        );
    }

    @ParameterizedTest
    @MethodSource("getArguments")
    @DisplayName("Test parseEndpoint method")
    void testMethod(String arg1, String result1, String result2) {

        final String[] strings = service.doSomething(arg1);

        assertEquals(result1, strings[0]);
        assertEquals(result2, strings[1]);
    }

}

然后我可以看到我的测试由参数化引擎和JUnit Vintage单元运行。这里的事情是如何禁用这样的类只能由Parameterized.class运行?!

mockito junit5 parameterized
1个回答
4
投票

您正在将JUnit 4和5混合在同一个类中。

删除@RunWith(Parameterized.class),你不需要它。删除junit 4软件包中的所有其他代码(如果有的话)。

之后你的测试会没问题。

© www.soinside.com 2019 - 2024. All rights reserved.