`

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
分享到:
评论

相关推荐

    Logincontroller.java

    @Controller @RequestMapping(value = "ViewController") class ViewController { //@Resource //private ComboPooledDataSource comboPooledDataSource; //@Resource //private JdbcTemplate jdbcTemplate; @...

    SpringMVC-SSH全注解

    @Controller public class UserController{ @Resource private UserService userService; @RequestMapping(value="/userList1.do") public String geUserList1(HttpServletRequest request ,...

    Bootstrap分页

    @Controller public class UserController extends BaseController { @Resource private IUserService userService; /*** * 方法一请求使用String * * 请求@RequestMapping匹配的URL request * * @...

    SpringMVC批量上传

    @Controller @RequestMapping("/upload") public class UploadFileController { @Autowired private UploadFileService uploadFileService; @RequestMapping("/upfile") public String upload...

    SpringMvc中获取 PathVariable的值的方式.docx

    @RequestMapping(value = "/del/{id}", method = RequestMethod.GET) public void del(HttpServletRequest request, @PathVariable("id") Long id){ System.out.println(id); }

    springmvc的一个简单实例

    @Controller public class HelloController { @RequestMapping("/Login.jsp") public ModelAndView checkToken(HttpServletRequest request, HttpServletResponse response) { /*ModelAndView view = new ...

    SSH_appp.zip

    public String doLogin(@RequestParam String devCode,@RequestParam String devPassword,HttpServletRequest request,HttpSession session){ logger.debug("doLogin===================================="); //...

    HttpServletRequst的mock实现基础上的测试案例介绍

    1.无maven,照样实现发布war中不含测试代码 在主工程中,不包含任何测试代码,理论上连main方法都不应该存在。测试代码常常放在与主工程同package的下面,以Test+className作为类名。由于采用了junit4,建议使用...

    图片上传并回显插件11111

    @RequestMapping("/admin/addImage.do") public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { MultipartResolver resolver = new ...

    spring-mock-2.0-rc3.jar

    MockHttpServletRequest:HttpServletRequest接口的mock实现。 MockHttpServletResponse:HttpServletResponse接口的mock实现。 MockHttpSession:HttpSession接口的mock实现。 q DelegatingServletInputStream...

    spring-mock.jar

    org.springframework.mock.web.MockHttpServletRequest.class org.springframework.mock.web.MockHttpServletResponse.class org.springframework.mock.web.MockHttpSession.class org.springframework.mock.web....

    基于Spring的HttpInvoker实现改写egova_invoker.zip

     @Controller  @RequestMapping(value="/egova_invoker")  public class ServerDemo{  @RequestMapping(value="invoker")  public void invoker(HttpServletRequest request, HttpServletResponse ...

    基于SpringMVC annotation 的图形验证码

    @Controller @RequestMapping("/checkCode") public class CheckCodeController extends HttpServlet { public CheckCodeController() { super(); } public void destroy() { super.destroy(); } public ...

    mockito源码 供java同学学习,用于在自动化单元测试中创建测试对象,为TDD或BDD提供支持

    在具体的使用场景中,例如,对于一些不容易构造或者获取的对象(如HttpServletRequest必须在Servlet容器中才能构造出来,或者JDBC中的ResultSet对象),Mockito可以创建一个虚拟的对象(即Mock对象)进行测试。...

    Spring Framework Reference 4.1.x Web MVC部分 pdf

    Spring Framework Reference 4.1.x Web MVC部分 pdf

    Upload.java

    @RequestMapping("add") public String add(HttpServletRequest request,User user,MultipartFile file){ String tp = Upload.upload(file); if(""!=tp){ user.setimg(tp); } ud.add(gs); return "redirect:...

    实现视频在线播放.zip

    @RequestMapping("/outputVideo") public void getVideo(HttpServletRequest request,HttpServletResponse response,@RequestParam("path")String videoPath) throws IOException { System.out.println("来请求了...

    java-echart.js柱状图、饼状图、折线图

    public String zhuzhuangtu(ClassRoom classRoom ,HttpServletRequest req,HttpServletResponse resp,Model model){ List,Object&gt;&gt; maps = new ArrayList,Object&gt;&gt;(); Map,Object&gt; map = new HashMap(); ...

    poi导出excel所用jar包,可添加至maven仓库,也可以自己配置,适合各种浏览器

    @RequestMapping("Export") @ResponseBody public String getAll(HttpServletRequest request,HttpServletResponse response) throws IOException{ //集合为需要导出数据,数据查询得到,这里测试就不写了。 ...

    Spring MVC中Ajax实现二级联动的简单实例

    后台Controller: @RequestMapping(/faultType) @ResponseBody public Map&lt;String&gt; faultType(int id,HttpServletRequest request)throws IOException { String ReturnMessage = ; //获取所有子类故障类型 List...

Global site tag (gtag.js) - Google Analytics