0

Grailsプラグインとしての自動統合/機能テストのためにCanooWebtestを評価しています。

テストしようとしているRESTアプリがありますが、CanooWebtestが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:値がありません」というエラーが表示されます。'の文字0で。GETリクエストの応答としてのJSONデータが正常に戻ってきています。

私はcurlで同じ機能をテストしましたが、それは完全に正常に機能します。Canoo Webtestのセットアップに欠けているものはありますか?

ありがとう。

編集:違いが生じる場合に備えて、Grails1.3.7を使用しています

4

1 に答える 1

0

わかった。私はinvoke()を試してみましたが、属性soapActionの値をtrueに設定するとうまくいくようです。

なぜこれが機能するのか私にはわかりません。属性の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.

どうやらそれはいくつかの必要なリクエストヘッダーを設定します。どれをチェックしていません。

読んでくれてありがとう :)

この回答をまだ正しいものとしてマークすることはできませんが、可能な場合はマークします。

于 2012-11-12T22:07:05.257 に答える