如何对 Springboot API 进行端到端测试?
How do I do end to end testing of a Springboot API?
我有以下测试class来测试我的API,我有以下代码结构:
package controller -> UserController.java
package service -> UserService.java
package repository -> UserRepository.java
package endtoend -> EndToEndTest.java
@WebMvcTest(UserController.class)
class EndToEndTest {
@Autowired
private MockMvc mockMvc;
@Test
void shouldReturn200() throws Exception{
mockMvc.perform(get("/users/{username}", "testUser"))
.andExpect(status().isOk());
}
UserController.java 有一个 Get 映射 -> @GetMapping("/users/{username}")
但是测试返回了一个错误,表明应用程序启动失败并且缺少 UserService 类型的 bean。
我觉得我缺少一些模拟,因为我的控制器调用服务和服务调用存储库。
请帮忙!
使用 @SpringBootTest
注释来完全加载应用中的所有 bean。 @WebMvcTest
不会发生这种情况
我有以下测试class来测试我的API,我有以下代码结构:
package controller -> UserController.java
package service -> UserService.java
package repository -> UserRepository.java
package endtoend -> EndToEndTest.java
@WebMvcTest(UserController.class)
class EndToEndTest {
@Autowired
private MockMvc mockMvc;
@Test
void shouldReturn200() throws Exception{
mockMvc.perform(get("/users/{username}", "testUser"))
.andExpect(status().isOk());
}
UserController.java 有一个 Get 映射 -> @GetMapping("/users/{username}")
但是测试返回了一个错误,表明应用程序启动失败并且缺少 UserService 类型的 bean。
我觉得我缺少一些模拟,因为我的控制器调用服务和服务调用存储库。
请帮忙!
使用 @SpringBootTest
注释来完全加载应用中的所有 bean。 @WebMvcTest