使用@ExtendWith(MockitoExtension.class)的Spring Boot JUnit 5测试不起作用-模拟为空,MockitoJUnitRunner正在工作

时间:2020-06-08 12:38:30

标签: spring-boot junit mockito junit5

我刚刚将项目从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一起运行。

1 个答案:

答案 0 :(得分:9)

确保对@Test批注使用正确的导入:

  • JUnit 4:org.junit.Test

  • JUnit 5:org.junit.jupiter.api.Test