基于单元测试注释的Spring MVC Portlet控制器

时间:2012-04-02 22:10:33

标签: unit-testing spring-mvc junit spring-annotations

我是一个用portlet学习spring mvc的新手。我有一个返回视图的控制器。我不知道如何编写控制器的单元测试。

@controller
@RequestMapping("VIEW")
public class HelloController {

@ResourceMapping(value = "hello")
public String helloWorld(RenderRequest request) {

    return "hello";
}

我的单元测试控制器是这样的

public class HelloWorldControllerTest extends TestCase {

protected void setUp() throws Exception {
    super.setUp();
}

protected void tearDown() throws Exception {
    super.tearDown();
}

public void testHelloWorldController() throws IOException {

          MockRenderRequest request = new MockRenderRequest();
        HelloController c = new HelloController ();
        ModelAndView result = c.helloWorld(request);
        assertNotNull("ModelAndView should not be null", result);
        assertEquals("hello", result.getViewName());
}

这不起作用,因为结果不是ModelAndView对象,但它是控制器中的String。返回类型可以是主控制器中的ModelAndView对象,但如果使用基于spring的注释,那么从示例中我发现返回类型是String。任何人都可以建议哪种是最佳做法,或者我是否理解错误。

提前致谢

2 个答案:

答案 0 :(得分:1)

spring-test-mvc项目有助于测试Spring MVC控制器。

答案 1 :(得分:0)

checkout spring-test-portlet-mvc(https://github.com/markusf/spring-test-portlet-mvc)对Spring控制器进行集成测试。