2011-08-26 50 views
1

提前感謝您提供的任何幫助。 我有一個方法,一個控制器,它與經典的重定向結束裏面,如下:Grails - 在集成測試中使用params重定向()

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

我想在我的集成測試,以測試這一點。 對於action部分,我做如下:

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

首先,是不是有什麼清潔劑,以避免startsWith()電話嗎? 然後,我該如何測試params部分?

我一直在環顧四周,無法找到答案。

祝你愉快的一天!

回答

3

我建議通過單元測試控制器擴展ControllerUnitTestCase的測試。這給你一個非常乾淨的方式來測試你的呼叫重定向()。例如:

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

測試儘可能通過單元測試(特別是在控制器操作的流程邏輯)合理的,並使用集成測試只是爲了確保一切都很好地扮演在一起,以驗證系統的狀態。

+0

謝謝。我實際上在這個'redirectArgs'對象上發現了錯誤的信息,並沒有正確使用它。 –

+0

這似乎並不適用於現代Grails版本(2.3.x)。但是@安德里的回答呢! –

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