MockHttpServletRequest 测试spring的Controller,如果Controller的类名和要调用的方法名上都写有@RequestMapping:
解决办法是为MockHttpServletRequest设置如下一个attribute:
[url]http://hi.baidu.com/dgfytufxgvfmvwr/item/2c0ecdee115ffe0c8c3ea806[/url]
@Controller
@RequestMapping("email")
public class EmailRest extends AbstractController {
@RequestMapping(method = RequestMethod.POST, value = "send")
public HttpEntity<?> sendEmail(@Valid @RequestBody EmailForm json) {
则如果在@Test里这样写:
MockHttpServletRequest request;
...
request.setRequestURI("/email/send");
则测试时会莫名其妙的报NullPointerException。
解决办法是为MockHttpServletRequest设置如下一个attribute:
request.setAttribute(HandlerMapping.INTROSPECT_TYPE_LEVEL_MAPPING, true);
参考资料:
[url]http://hi.baidu.com/dgfytufxgvfmvwr/item/2c0ecdee115ffe0c8c3ea806[/url]