Grails - 在集成测试中使用params重定向()

时间:2011-08-26 01:26:18

标签: grails redirect integration-testing params

提前感谢您提供的任何帮助。 我有一个方法,在一个以经典重定向结束的控制器内,如下所示:

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

我想在集成测试中对此进行测试。 对于action部分,我的操作如下:

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

首先,是否有任何更清洁的东西可以避免startsWith()电话? 然后,我如何测试params部分?

我一直在环顾四周,找不到这个答案。

祝你今天愉快!

2 个答案:

答案 0 :(得分:4)

assert response.redirectedUrl == '/roleClientProfile/create?user.id=1'

答案 1 :(得分:3)

我建议通过扩展ControllerUnitTestCase的单元测试来测试控制器。这为您提供了一种非常干净的方法来测试您对redirect()的调用。例如:

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

通过单元测试(尤其是控制器操作中的流逻辑)进行合理测试,并使用集成测试来确保一切可以很好地协同工作并验证系统状态。