MockMVC - 如何在不让 mockMvc 生成实际 post 的情况下测试 post 到端点?

MockMVC - How to test post to an endpoint without having mockMvc make the actual post?

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

我的问题是,mockMvc 正在对端点进行实际的 POST 调用! !我还以为这都被嘲笑了?!是否可以在不实际调用端点并将文件推送到我的远程仓库的情况下使用 mockMvc return isOk()?

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

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

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