我有一个带有其他api端点的应用程序。我想为此编写测试用例。它遵循MVC体系结构。对于终点之一,我想在我的DAO类中模拟一个方法。
我的测试课程的示例代码是:
RequestBuilder requestGetBuilder = MockMvcRequestBuilders
.get("/processcal/getdata/srn/{srn}",1000)
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON);
此控制器将调用具有要模拟的方法的DAO层。 我尝试在我的“测试”配置类中按以下方式使用模仿:
@Bean
@Primary
BookMarkDao bookMarkDao() {
final BookMarkDao bookMarkDao = Mockito.mock(BookMarkDao.class);
Mockito.when(bookMarkDao.fetchMrPostProcessCalc(Mockito.anyString()))
.thenReturn(TestUtils.getMockResponse());
return bookMarkDao;
}
此问题是它正在模拟整个DAO bean,因此对于其余端点,它不调用DAO类方法,因此我的测试覆盖率降低了。有办法解决这个问题吗?
答案 0 :(得分:0)
您可以将特定的概要文件用于模拟bean,并在必要的测试用例中激活此概要文件。顺便说一句,如果您的应用程序是基于spring-boot的,那么您可以使用@MockBean而不是在测试配置中手动制作DAO的模型。