如何对 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

不会发生这种情况