spring-boot - 使用 String 时 MockMVC @PathVariable 不起作用
问题描述
当 Pathvariable 是 String 但适用于 int 时,Mockmvc 测试不起作用。这是我的代码:
@Controller
@RequestMapping("/etablissement/{typeEtablissement}")
public class EtablissementController{
@RequestMapping(method = RequestMethod.GET)
public String accueil(@PathVariable("typeEtablissement") String typeEtablissement) {
return "/test";
}
}
// somewhere in my test
mockMvc.perform(get("/etablissement/{typeEtablissement}", "test")).andExpect(status().isOk()); // Error 400
但是,如果我使用 int 而不是 String 它可以工作
@RequestMapping(method = RequestMethod.GET)
public String accueil(@PathVariable("typeEtablissement") int typeEtablissement) {
return "/test";
}
// somewhere in my test
mockMvc.perform(get("/etablissement/{typeEtablissement}", 123)).andExpect(status().isOk()); // Works
使用对象也可以
public String accueil(@PathVariable("typeEtablissement") Object typeEtablissement) {}
谢谢你的帮助 !
解决方案
这是一个可以帮助您的 GetMapping 示例:
@GetMapping("/{typeEtablissement}/{something2}/{something3}")
public List<Object> extract(
@PathVariable String typeEtablissement,
@PathVariable String something2,
@PathVariable String something3) {
List<Object> object = objectService.extractDatas(typeEtablissement, something2, something3);
return object;
}
推荐阅读
- unity3d - “signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x200000077” 在华为设备上崩溃
- symfony - 从我的 QuizRepository 获取我的 querybuilder 结果到我的 QuizController
- microsoft-graph-api - 如何检索对 Microsoft Teams 电话系统呼叫队列进行的呼叫的 callRecords 或日志?
- java - 带有 Socks4 代理的 Java Socket 更改为 Socks5
- javascript - 将具有键值对的对象数组转换为单个对象?
- python - 检查是否存在多个关键字并使用 python 创建另一列
- javascript - 将 Math.max 与类型化子数组一起使用
- ios - 在 ios swift 中的 Paytm 中获取“无效校验和”
- sql - 仅在多位整数的前半部分查找 2 列之间的匹配项
- coldfusion - ColdFusion 检查 cookie 何时过期