首页 > 解决方案 > MockMVC - 如何在没有 mockMvc 发布实际帖子的情况下测试到端点的帖子?

问题描述

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

我的问题是,mockMvc 正在对端点进行实际的 POST 调用!哇!我还以为这都是在嘲讽?!是否可以让 mockMvc 返回 isOk() 而无需实际调用端点并将文件推送到我的远程仓库?

标签: javajunitmockmvc

解决方案


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

来自控制器的 post 方法实际上是您需要测试的方法,它不应该被模拟,这就是您点击真正端点的原因。

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


推荐阅读