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服务,它可以按预期工作。只有在集成测试中它才会失败。感谢。
答案 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表示您要测试的操作。 (我想你已经这样做了,因为这对你的整合测试起作用了)。