2013-11-01 2 views
3

Мой контроллер имеет функцию следующим образом:Grails как утверждающие Перенаправление действия

def go() { 
... 
redirect(action: 'someOtherAction') 
} 

В моей интеграционного теста, как бы я утверждаю, что контроллер сделал то, что я думал, что он должен делать?

assertEquals 'someOtherAction', controller.???? 

Эти оба дают нулевые значения:

controller.response.redirectedUrl 
controller.modelAndView.viewName 

EDIT:

Захват экземпляра ответа:

enter image description here

+0

Уверены ли вы, что получаете доступ к своей «переадресации»? Похож на «рендер». – doelleri

+0

Определенно перенаправление. – spock99

ответ

2

Если тест использует Grails 2.0 стиль @TestFor аннотаций , ты должен быть способен сделайте это:

controller.go() 
assert response.redirectedUrl == '/someUrl/someOtherAction' 

Ответ не является собственностью контроллера; тестовая аннотация добавляет ее к самому тестовому классу.

+0

Нет, перенаправленный url по-прежнему равен нулю. Я добавил скриншот объекта ответа. Он отлично работает в производстве и перенаправляет на действие, я просто не могу выполнить эту часть теста. – spock99

Смежные вопросы