Контроллер Spring MVC Portlet на основе аннотаций модульного теста

Я новичок, изучаю Spring MVC с портлетами. У меня есть контроллер, который возвращает представление. Я не уверен, как написать модульный тест этого контроллера.

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

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

    return "hello";
}

и мой контроллер Unit Test выглядит примерно так

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, а представляет собой строку в контроллере. Тип возвращаемого значения может быть объектом ModelAndView в основном контроллере, но если использовать аннотацию Spring, то из примеров, которые я нашел, возвращаемый тип — String. Может ли кто-нибудь предложить, что является лучшей практикой, или если я ошибаюсь в понимании.

заранее спасибо


person user525146    schedule 02.04.2012    source источник


Ответы (2)


Проект spring-test-mvc упрощает тестирование контроллеров Spring MVC.

person Stefan Birkner    schedule 03.04.2012

Оформить заказ spring-test-portlet-mvc (https://github.com/markusf/spring-test-portlet-mvc) для интеграционного тестирования ваших контроллеров Spring.

person markusf    schedule 01.11.2014