`

MockHttpServletRequest + Controller @RequestMapping 单元测试之 NullPointerException

阅读更多
MockHttpServletRequest 测试spring的Controller,如果Controller的类名和要调用的方法名上都写有@RequestMapping:
@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);
参考资料:
http://hi.baidu.com/dgfytufxgvfmvwr/item/2c0ecdee115ffe0c8c3ea806
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics