java - MockMVC - 如何在没有 mockMvc 进行实际发布的情况下测试到端点的发布?

标签 java junit mockmvc

我有一个想要测试的 REST 端点。通过 POST 请求命中此端点会上传远程 git 存储库中的文件。我正在尝试使用mockMvc测试对此端点的POST调用(我只想查看返回状态“isOk()”)——我不希望端点实际被我的jUnits击中,因为这会导致不必要的文件上传到存储库,稍后需要清理。

我的问题是,mockMvc 正在对端点进行实际的 POST 调用!与!我以为这都是被 mock 的?!是否可以让mockMvc返回isOk()而不实际调用端点并将文件推送到我的远程存储库?

最佳答案

Mock MVC 只是一个工具,可以调用带有 @GetMapping@PostMapping 等标记的方法

Controller 中的 post 方法实际上是您需要测试的方法,不应该模拟它,这就是您到达真正端点的原因。

我建议您重构 Controller ,使 post 方法仅将向服务发送请求的工作委托(delegate)给您。这样,您的 Controller 将只有一行代码(服务调用),同时您将能够模拟该服务,以便它不会到达真正的端点。

关于java - MockMVC - 如何在没有 mockMvc 进行实际发布的情况下测试到端点的发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52302398/

相关文章:

java - 构建多重映射的正确方法

java - Servlet 的 Google guice 注入(inject)器返回 500 错误

JavaFX 仅使用 CSS 控制笔画样式?

java - 如何在略有不同的 jar 列表上运行测试用例?

java - 设置管理端口时Spring Boot的执行器不可用

java - 需要帮助才能使 Spring MVC 项目与 IntelliJ IDEA 一起使用

java - 为什么 JUnit 会忽略基类上的 @Category 注解?

java - 使用命令行构建和运行 junit 测试文件的问题

java - Spring Boot - REST Controller ,使用 MockMvc 进行测试,环境属性

java - MockMvc 是否有资格进行 WebFlux Controller 测试?