1
在Grails項目我期待在這裏,一個過濾器把域對象的請求......在請求把對象的Grails的集成測試
class TokenFilters {
def filters = {
all(uri: '/hiphop/**') {
before = {
MyToken myToken = ...
request.myToken = myToken
即爲MyToken樣子:
class MyToken {
String id
String token
static mapping = {
token(index: true)
id(generator: 'uuid')
}
...
}
在我的控制器中,myToken被取消了請求。
MyController {
myaction {
MyToken accessToken = request.myToken
一切都好。我希望爲控制器編寫一個集成測試。
@Test
void testLogin() {
def mc = new MyController()
def myToken = new MyToken(1234);
// set the request parameters
mc.request.parameters = [myToken:myToken];
def message = mc.action();
assertTrue(message.indexOf("trans") > 0)
}
當我跑,我得到:
所以它看起來像Grails將只讓我一個字符串或單個值和不喜歡我把一個對象的請求過濾器。即使你讓我在過濾器中使用相同的對象類型。
我真的很想測試這個功能測試。請幫忙。我使用的Grails 2.2.1
感謝
我要傳遞參數給控制器,以我的測試做任何有意義的 –
不傳遞對象控制器。根據傳入的簡單值查找控制器中的對象。如果需要將對象傳遞到控制器以使測試正常工作,則需要重新考慮測試。 – Gregg
謝謝但Filter正在傳遞給Controller的請求上設置一個對象。我需要模擬相同的請求。 –