【发布时间】:2017-12-20 22:19:46
【问题描述】:
我正在为我的控制器类编写测试用例,它是一个 Spring Boot 应用程序,我只想为调用服务和服务到存储库的控制器类编写测试用例。我正在使用 SpringBootTest,它用于为我的所有 bean 创建实例。我只想模拟数据库调用和外部 api 调用。
MyController {
@Autowired
MyService service;
//Api call for getDetails
service.getDetails();
}
MyService {
@Autowired
MyRepository repo;
}
MyControllertest {
@Autowired
MyController controller;
@Mock
MyRepository repoMock;
@Before
public void setup(){
// intit mocks
}
@Test
public void myTest(){
when(repoMock.getDetails()).thenReturn(null);
controller.getdetails();
}
}
当我运行测试用例时,它没有使用模拟存储库,而是使用 Service 类中提到的@Autowired 存储库。
谁能解释一下如何从控制器类模拟存储库。
在此博客中发布了这么多问题,但没有得到任何回复。
【问题讨论】:
-
你能告诉我们
MyControllertest的类级别注释吗?例如。@RunWith(SpringJUnit4ClassRunner.class).
标签: junit mocking mockito powermock spring-boot-test