【问题标题】:How do I do end to end testing of a Springboot API?如何对 Spring Boot API 进行端到端测试?
【发布时间】:2020-04-27 01:22:38
【问题描述】:

我有以下测试类来测试我的 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。

我觉得我缺少一些模拟,因为我的控制器调用服务和服务调用存储库。

请帮忙!

【问题讨论】:

    标签: java spring-boot mocking junit5 mockmvc


    【解决方案1】:

    使用@SpringBootTest 注释来完全加载应用程序中的所有bean。 @WebMvcTest 不会发生这种情况

    【讨论】:

    • 谢谢。我尝试添加 SpringBootTest 和 AutoConfigureMockMvc 注释,现在我得到了 404。但我知道我有端点;还有什么我可以尝试的吗?
    • 我错过了一个斜杠(“/”)。现在可以使用了,谢谢:)
    猜你喜欢
    • 2018-11-25
    • 2018-05-12
    • 2018-06-26
    • 2019-07-09
    • 1970-01-01
    • 2018-11-19
    • 2015-11-05
    • 1970-01-01
    • 2016-04-23
    相关资源
    最近更新 更多