2010-11-04 48 views
0

的Grails 1.3.5Grails的集成測試RESTful服務 - 參數數量沒有內容

的問題是,我想測試消耗JSON RESTful Web服務。我已閱讀grails.org上的文檔,並使用他們的Book示例進行了測試。我無法在控制器中獲得參數以包含任何數據。所以,我開始google搜索,我碰到這個跑:

http://maricel-tech.blogspot.com/2009/09/grails-how-to-execute-parameters-data.html

但是,甚至沒有解決我的問題。任何人都知道我還需要做些什麼嗎?我會顯示我的代碼,但它與Book json的grails.org文檔集成測試相同。在集成測試之外,我可以使用Firefox插件Post將json內容發佈到Web服務,並按預期工作。只有在集成測試中,它纔會失敗。謝謝。

回答

0

我通過擴展GrailsUnitTestCase而不是ControllerUnitTestCase得到了這個工作。有人能向我解釋爲什麼會出現這種情況嗎?

0

這是我在ControllerUnitTestCases

// set param 'queryString', using a map 
controller.metaClass.getParams = {-> [queryString: "oil"] } 

// I have read that this should work also 
controller.request.params = [queryString: "oil"] 
+0

謝謝Aaron。我需要閱讀更多有關GrailsUnitTestCase和ControllerUnitTestCase之間差異的文檔,假設文檔甚至準確,因爲它們不適合當前測試REST Web服務。 – Gregg 2010-11-04 14:42:55

0

在我的情況已經做了我延長GroovyTestCase的,因爲我執行整合測試,而不是一個單元測試,我不使用GrailsUnitTestCase既不ControllerUnitTest。

一些很重要的是指定內容類型的控制器,因爲內容類型是什麼決定了粘結劑推出,只是做:

controller.request.contentType = "text/json" 

另外,還要確保你在的parseRequest =真正的你URLMappings.groovy用於您嘗試測試的操作。 (我認爲你已經做了,因爲這對你來說不適用於集成測試)。