【发布时间】:2015-10-08 06:47:12
【问题描述】:
我正在使用 RestTemplate 从控制器调用休息控制器,例如:
@RequestMapping(method = POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public String formForUpload(@RequestParam("file") MultipartFile file) throws Exception {
final MultiValueMap<String, Object> parts=...;
restTemplate.postForObject("http://localhost:8080/rest/something",
parts, MultipartFile.class);
...
}
如何单元测试控制器调用的 URL 是否正确。有什么方法可以获取其余控制器的路径(例如使用这种反射技术)?
我不想运行集成测试!
【问题讨论】:
-
在方法中,你要放置一个显式的字符串文字,所以你不能在测试中使用相同的字符串文字吗?
-
我不确定我是否关注你!如果您认为您有解决方案,请发布。我想测试对该控制器的调用,该控制器从前端的表单接收帖子,并确保我正在使用我想模拟的 RestTemplate 调用正确的休息控制器。假设我更改了rest服务的api,那么测试肯定会失败,因为路径不是最新的。在断言中检查这一点会很好。
-
您要解决的问题是什么?如何测试使用三个参数(即 URL 字符串、部分和类)调用模拟?还是第一个参数,URL 字符串被正确构造以匹配 REST 控制器映射到的 URL?
标签: spring rest unit-testing testing