java - MockMVC - 如何在没有 mockMvc 发布实际帖子的情况下测试到端点的帖子?
问题描述
我有一个想要测试的 REST 端点。通过 POST 请求访问此端点会在远程 git 存储库中上传文件。我正在尝试使用 mockMvc 测试对此端点的 POST 调用(我只想查看返回状态“isOk()”)——我不希望端点实际上被我的 jUnits 击中,因为这会导致不必要的文件上传到仓库,稍后需要清理。
我的问题是,mockMvc 正在对端点进行实际的 POST 调用!哇!我还以为这都是在嘲讽?!是否可以让 mockMvc 返回 isOk() 而无需实际调用端点并将文件推送到我的远程仓库?
解决方案
Mock MVC 只是一种工具,可以调用标有 、 等的@GetMapping
方法@PostMapping
。
来自控制器的 post 方法实际上是您需要测试的方法,它不应该被模拟,这就是您点击真正端点的原因。
我建议您以 post 方法仅将发送请求的工作委托给服务的方式重组您的控制器。这样,您的控制器将只有一行代码(服务调用),同时您将能够模拟服务,使其不会到达真正的端点。
推荐阅读
- javascript - 模糊 testcafe 中的输入字段
- javascript - Ajax HTTP 请求拦截器,在 promise.resolve 后添加标头值不起作用
- php - 我怎样才能从 git status "On branch master \n Nothing to commit.." 到 "On branch master \n Your branch is up to date \n Nothing to .." ?
- javascript - 带有 Typescript 的 ES6 箭头函数
- sql - Invoke-sqlcmd 不按行返回数据
- regex - 无法使正则表达式搜索匹配字符串中的 10 位数字
- html - 更改部分 Material Icon 的颜色
- python - 编写文字冒险游戏
- c - 为什么初始化指向 NULL 的指针是一个好习惯?
- php - 使用 Composer 安装后解析 PHP SDK 无法创建查询