Grails — redirect() с параметрами в интеграционных тестах

Заранее благодарим за любую оказанную помощь. У меня есть метод внутри контроллера, который заканчивается классическим перенаправлением, следующим образом:

redirect(action: 'login', params: params)

Я хотел бы проверить это в своем интеграционном тесте. Для части action я делаю следующее:

assert creditProviderController.response.redirectedUrl.startsWith("/creditProvider/login")

Во-первых, нет ли чего почище, чтобы избежать вызова startsWith()? И потом, как я могу проверить часть params?

Я искал вокруг и не могу найти этот ответ.

Желаю приятного дня!


person Alexandre Bourlier    schedule 26.08.2011    source источник


Ответы (1)


Я бы рекомендовал протестировать контроллер с помощью модульного теста, расширяющего ControllerUnitTestCase. Это дает вам очень простой способ проверить ваш вызов redirect(). Например:

assertEquals("login", redirectArgs.action)
assertNotNull(redirectArgs.params.username)

Тестируйте столько, сколько это возможно, с помощью модульных тестов (особенно логику потока в действиях контроллера) и используйте интеграционные тесты, чтобы убедиться, что все хорошо работает вместе, и чтобы проверить состояние системы.

person Shawn Flahave    schedule 30.08.2011
comment
Спасибо. На самом деле я нашел неверную информацию об этом объекте 'redirectArgs' и не использовал ее должным образом. - person Alexandre Bourlier; 02.09.2011
comment
Похоже, это не работает в современных версиях Grails (2.3.x). Но ответ @Andrii делает! - person Marcin Świerczyński; 20.03.2014