我刚刚将项目从Spring Boot 2.1迁移到2.3,因此现在有了JUnit 5(带有老式)(还包括版本3.3.3的mockito-core和mockito-junit-jupiter)。 当所有JUnit 4测试都能正常工作时,我的第一个JUnit 5测试无法正常工作:
@ExtendWith(MockitoExtension.class)
public class SomeTest {
@InjectMocks
private Some to;
@Mock
private SomeProperties properties;
@Test
public void applied() {
....
//properties is null -> NPE
when(properties.getSome()).thenReturn("some");
....
}
不会注入模拟(在when语句中为NPE)。如果我切换到旧的JUnit 4样式@RunWith(MockitoJUnitRunner.class)
,一切正常。
那么大概是使用旧的还是老式的?
如何解决此问题并在“ @ExtendWith”正常工作的情况下进行测试?我以为我可以逐步迁移-让新的测试与junit5Runner一起运行。
答案 0 :(得分:9)
确保对@Test
批注使用正确的导入:
JUnit 4:org.junit.Test
JUnit 5:org.junit.jupiter.api.Test