【问题标题】:JUnit5 (Vintage) initializationError while using @ParameterizedTest and @RunWith(Parameterized.class)使用 @ParameterizedTest 和 @RunWith(Parameterized.class) 时出现 JUnit5 (Vintage) 初始化错误
【发布时间】:2019-08-20 07:26:27
【问题描述】:

我在尝试使用 JUnit 5 的参数化功能时偶然发现了一个初始化错误。

@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】:

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

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

    在那之后你的测试会很好。

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 2018-02-06
      • 2021-05-08
      • 2021-09-22
      • 1970-01-01
      • 2011-04-18
      相关资源
      最近更新 更多