2013-07-15 91 views
-1

我有這個東西在一個控制器:Grails的單元測試控制器,JSON請求

def show{ 
render (contentType: "text/json"){ 
     needid = stuff.id 
     owner = stuff.owner.username 
     title = stuff.title 
} 

,因爲我用我的瀏覽器,「東西/顯示/ 3」會告訴我的東西id爲3

現在我的問題:

如何編寫單元測試控制器,更確切地說,我如何發送參數「3」?

我的建議:

void testShow(){ 
      request.json = ???? //how to send id parameter? 

      controller.show() 

      println(response.text); // show me whats the response 

      assert '3' == response.text //assert something, not sure if correct 
} 

非常感謝您!

+2

爲什麼以及您如何看待該服務需要JSON請求? – dmahapatro

+0

我讀了一些關於控制器單元測試的doc文件,這是我能想到的。你可以幫幫我嗎 ? – user2585063

+0

從[這裏]開始(http://grails.org/doc/latest/guide/)。 – dmahapatro

回答

0

1.您是否添加了@TestFor註釋?

import grails.test.mixin.TestFor 

@TestFor(SimpleController) 
class SimpleControllerTests { 
    void testSomething() { 

    } 
} 

2.如果你沒有做任何特殊的配置,我猜請求參數不是json。因此,你可以簡單地做:

params.id = 3 

有關詳細信息,你可以參考Grails的2.0文檔有關控制器單元測試here強烈推薦)。