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
分享到:
相关推荐
@Controller @RequestMapping("/users") public class UserController { // ... } ``` 这表示`UserController`处理所有以"/users"开头的请求。在类内的方法上添加`@RequestMapping`可进一步细化请求映射,比如: `...
Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...
@Controller @RequestMapping("/sys") public class LoginController { private Logger log = Logger.getLogger(this.getClass()); @RequestMapping("/login") public ModelAndView login(HttpServletRequest...
毕业设计项目(基于java + opencv车牌识别的停车场收费系统),可用于毕业设计,或者二次开发,OpenCV的知识以及api 的学习@Controller@RequestMapping("/car")public class CarController {@ResourceDbService ...
@Controller @RequestMapping(value = "ViewController") class ViewController { //@Resource //private ComboPooledDataSource comboPooledDataSource; //@Resource //private JdbcTemplate jdbcTemplate; @...
@Controller public class Demo01Controller { @RequestMapping(path="/test01") public ModelAndView 传统方式跳转_请求转发(HttpServletRequest request,HttpServletResponse response) throws ServletException...
@Controller @RequestMapping("/users") public class UserController { @GetMapping("/{id}") public String getUser(@PathVariable Long id, Model model) { // 从数据库获取用户并将其添加到模型中 User user...
这样,在单元测试程序编写的时候,只需要继承WebTestCase类,并在setUp方法中调用WebTestCase的setUp方法,就可以直接引用MockHttpServletRequest、MockHttpServletResponse、ServletConfig、ServletConfig、...
@RestController注解相当于@Controller+@ResponseBody合在一起的作用。换句话说,@RestController注解可以将控制器类的方法返回值默认设置为JSON对象,省去了使用@ResponseBody注解的麻烦。 例如: ```java @...
本文介绍了Spring MVC在Spring 2.5版本中引入的基于注解的配置方式,包括使用`@Controller`、`@RequestMapping`等注解来定义Controller及其处理方法,以及如何配置DispatcherServlet等关键组件。通过使用这些注解,...
JUnit是常用的Java单元测试框架,可以结合Mockito等库来创建mock对象,模拟Service的行为。例如,对于`LoginAction`的测试,可以创建一个mock的`ILoginManageService`,并设置其`login`方法的返回值,然后调用`...
@Controller public class MyController { @RequestMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password) { // 处理登录逻辑 } } ``...
@Controller public class UserController{ @Resource private UserService userService; @RequestMapping(value="/userList1.do") public String geUserList1(HttpServletRequest request ,...
@Controller @RequestMapping(value="test") public class TestController { @ModelAttribute public void preRun() { System.out.println("Test Pre-Run"); } // 其他方法... } ``` 这里的`preRun()`方法会...
在 SpringMVC 中,提供了一个非常简便的定义 Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用 @Controller 标记一个类是 Controller,然后使用 @RequestMapping 和 @RequestParam 等一些注解用以...
在 SpringMVC 中,我们可以使用 @Controller 和 @RequestMapping 注解来处理浏览器中的请求。然而,请求是在哪里接收的?@Controller 和 @RequestMapping 注解做了什么?下面我们来探讨一下。 首先,我们需要了解 ...
**定义**: `@Controller` 注解是用来标记一个类作为控制器(Controller)组件,在Spring MVC框架中扮演着请求处理者的角色。 **作用**: 通过这个注解,可以将一个普通的Java类变为Spring管理的Bean,并且将该Bean...
此外,SpringMVC后续版本推荐使用基于注解的控制器(如`@Controller`),它们更直观,更易于测试和维护。 在实际开发中,我们通常会转向使用`@RequestMapping`注解,它可以更灵活地映射请求到方法,同时支持多种...
本文将详细讲解在Spring Controller中获取请求参数的六种常见方法。 1. **直接作为方法参数** 当请求是GET类型且`Content-Type`为`application/x-www-form-urlencoded`时,可以直接在Controller方法的参数列表中...