我正在评估Canoo Webtest作为Grails插件进行自动集成/功能测试。
我有一个我试图测试的REST应用程序,但是Canoo Webtest 似乎没有在POST请求中正确发送JSON数据。我的测试代码如下所示
invoke( description:"Add a product to shopping cart",
url:'shoppingCart/add', method:'POST',
content:'{"class":"shop.service.Product", "name":"A product", "description":"Manufactured by X", "price":99.9}'
//contentFile: '../product.json'
)
请求正文为空,无论我是使用contentFile方法还是将数据内联为内容属性。测试报告显示数据正确发送,但错误页面显示错误,指出'JSONException:Missing value。在'的字符0'。作为GET请求响应的JSON数据恢复正常。
我用curl测试了相同的功能,它的工作原理非常好。在Canoo Webtest设置中是否有一些我缺少的东西?
感谢。
编辑:我正在使用Grails 1.3.7以防万一(
)答案 0 :(得分:0)
行。我开始尝试使用 invoke(),似乎将属性 soapAction 值设置为true就可以了。
我不知道为什么会这样。该属性的documentation of invoke()表示
soapAction
Required? no
If the HTTP method is POST and is in fact a SOAP POST request,
this allows the SOAP Action header to be set. Ignored for GETs.
显然它设置了一些所需的请求标头。没检查哪一个。
感谢您阅读:)
还不能将此答案标记为正确答案,但会尽可能这样做。