当我尝试使用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]);
}
}
然后我可以看到我的测试是由Parameterized引擎和JUnit Vintage单元运行的。这里的问题是如何禁用仅由Parameterized.class运行的此类类?!
答案 0 :(得分:4)
您正在将JUnit 4和5混合在同一类中。
删除@RunWith(Parameterized.class),您不需要它。如果有,请删除来自junit 4软件包的所有其他代码。
那之后您的测试就可以了。