【问题标题】:Spring @Controller Unittest @RequestMappingSpring @Controller 单元测试 @RequestMapping
【发布时间】:2010-06-24 16:46:38
【问题描述】:

如果确实调用了 doCriticalStuff 方法,我想对请求映射(而不是方法本身)进行单元测试

package org.foo;

@Controller
public class HelloWorldController implements IHelloWorldController
{
   @RequestMapping(value = "/b/c/", method = RequestMethod.GET)
   public void doCriticalStuff(HttpServletRequest request, HttpServletResponse response){
      //...
   }
}

现在我正在通过curl -X GET http://myIP:myPort/b/c/ 从命令行以手动方式执行此操作。 关于如何自动化它的任何想法? 我可以设置一个 Jetty 实例,发送一个请求,看看我是否得到了预期的响应,但 Spring 没有提供更简单的方法吗?

相关帖子:How to test binders/property editors used on spring 2.5 controllers

【问题讨论】:

    标签: java unit-testing spring spring-mvc


    【解决方案1】:

    我会使用 AnnotationMethodHandlerAdapter 并调用 adapter.handle。只需将模拟请求和响应对象与您的控制器一起发送,spring 应该会处理其余的事情。

    【讨论】: