Grails集成测试RESTful服务 - params没有内容

时间:2010-11-04 03:08:16

标签: json rest grails

Grails 1.3.5

问题是我正在尝试测试使用json的RESTful Web服务。我已经阅读了关于grails.org的文档,并使用他们的Book示例进行了测试。我无法在控制器中获取包含任何数据的参数。所以我开始谷歌搜索,我跑过去了:

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

但这甚至没有解决我的问题。任何人都知道我还需要做些什么吗?我会显示我的代码,但它与使用json的Book的grails.org docs集成测试完全相同。在集成测试之外,我可以使用Firefox插件Post将json内容发布到Web服务,它可以按预期工作。只有在集成测试中它才会失败。感谢。

3 个答案:

答案 0 :(得分:0)

我通过扩展GrailsUnitTestCase而不是ControllerUnitTestCase来实现这一点。有人可以向我解释为什么会这样吗?

答案 1 :(得分: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"]

答案 2 :(得分:0)

在我的情况下,我正在扩展GroovyTestCase,我没有使用GrailsUnitTestCase和ControllerUnitTest,因为我正在执行集成测试,而不是单元测试。

重要的是在控制器中指定内容类型,因为内容类型决定了要启动的活页夹,只需执行以下操作:

controller.request.contentType = "text/json"

还要确保您的URLMappings.groovy中的parseRequest = true表示您要测试的操作。 (我想你已经这样做了,因为这对你的整合测试起作用了)。