我正在为我的控制器类编写测试用例,它是一个 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();
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行测试用例时,它没有使用模拟存储库,而是使用@AutowiredService 类中提到的存储库。
谁能解释一下如何从控制器类模拟存储库。
在这个博客中发布了很多问题,但没有得到任何答复。