【发布时间】:2020-02-17 06:30:47
【问题描述】:
我正在使用带有 JUnit 5 的 Spring Boot 2.1,并且刚刚创建了一个这样的测试:
@RunWith(MockitoJUnitRunner.class)
class UserServiceImplTest {
@Mock
private AppProperties appProperties;
@Mock
private UserAccountService userAccountService;
@BeforeEach
void setMockOutput() {
when(appProperties.getPort()).thenReturn("8088");
...
}
...
}
问题是 setMockOutput 方法中的两个变量都为空,即使在其他 SO 问题中提到的类上使用了 @RunWith(MockitoJUnitRunner.class) 注释。
如果我像下面的代码一样手动创建模拟,那么它可以正常工作:
@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");
...
}
...
}
【问题讨论】:
标签: spring spring-boot junit5