5

私はRESTfulAPIをテストしており、アプリケーションが受信データを適切に解析することをテストする必要があります。受信データのタイプは、XML形式またはJSON形式のいずれかです。アプリケーションは、ヘッダーのContent-Type値を調べて、データの処理方法を決定します。

アプリケーションはうまく機能しますが、URLを呼び出すときにContent-Typeを設定できないようであるため、Symfony2で適切な機能テストを作成できません。

私はこのようなことをしています:

$crawler = $client->request('PUT','/api/record/, array("data" => $xmlData), array(), array("Content-Type" => "text/xml"));

エラーをスローしていませんが、アプリケーションはそれを検出できません。Firefoxの「Poster」プラグインとcUrlを使用してスクリプトを正常にテストしました。

任意のヘルプ/アイデアをいただければ幸いです。

4

1 に答える 1

5

Symfony2のテストセクション(アプリケーションを使用Crawlerして操作する)で私が見ることができるものからClient、あなたはそれをとして持っていると思われます'CONTENT_TYPE' => 'application/xml'。したがって、次のことを試してください。

$crawler = $client->request('PUT','/api/record/', array("data" => $xmlData), array(), array('CONTENT_TYPE' => 'application/xml'));

text/xmlからに変更したことに注意してくださいapplication/xml。ただし、両方とも機能するはずです。

于 2012-06-07T22:22:34.470 に答える