Я использую Spring Boot 2.1 с JUnit 5 и только что создал тест вроде этого:
@RunWith(MockitoJUnitRunner.class)
class UserServiceImplTest {
@Mock
private AppProperties appProperties;
@Mock
private UserAccountService userAccountService;
@BeforeEach
void setMockOutput() {
when(appProperties.getPort()).thenReturn("8088");
...
}
...
}
Проблема в том, что обе переменные равны нулю в методе setMockOutput
, даже если @RunWith(MockitoJUnitRunner.class)
аннотации используются в классе, как упоминалось в других вопросах SO.
Если я создаю макеты вручную, как показано в коде ниже, тогда он работает нормально:
@RunWith(MockitoJUnitRunner.class)
class UserServiceImplTest {
private AppProperties appProperties;
private UserAccountService userAccountService;
@BeforeEach
void setMockOutput() {
appProperties = Mockito.mock(AppProperties.class);
userAccountService = Mockito.mock(UserAccountService.class);
when(appProperties.getPort()).thenReturn("8088");
...
}
...
}