mockito - 使用@ParameterizedTest 和@RunWith(Parameterized.class) 时出现JUnit5(Vintage)初始化错误

标签 mockito junit5 parameterized

我在尝试使用 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 运行?!

最佳答案

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

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

在那之后你的测试就没问题了。

关于mockito - 使用@ParameterizedTest 和@RunWith(Parameterized.class) 时出现JUnit5(Vintage)初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55415996/

相关文章:

java - Mockito的argThat在Kotlin中返回null

java - 基于 JerseyExtension 的 JUnit5 测试不保持请求之间的 session

c# - 并非所有测试都在包含数组的参数化 NUnit TestFixture 中运行

java - 如何制作一个通用的 ValueComparator 来对多个 HashMap 进行排序?

java - 检查 Activity 是否打开或崩溃了mockito

java - 参数匹配器不验证参数

android - 使用 RxJava 执行单元测试时出现 NullPointerException

java - 在 junit 5 中测试类中的 stub 私有(private)方法,PowerMock 不适用于 JUnit5

java - Spring Boot 应用程序的测试未运行

module - Erlang 中的参数化模块