2012-06-07 8 views
5

Ich teste eine RESTful-API und muss testen, ob die Anwendung eingehende Daten ordnungsgemäß analysiert. Die Art der eingehenden Daten kann entweder im XML- oder im JSON-Format vorliegen. Die Anwendung betrachtet den Inhaltstyp-Wert in der Kopfzeile, um zu bestimmen, wie die Daten behandelt werden.Inhaltstyp kann nicht mit Symfony2-Funktionstests festgelegt werden

Die Anwendung funktioniert gut, aber ich kann keinen korrekten Funktionstest in Symfony2 schreiben, da ich den Inhaltstyp beim Aufruf der URL nicht einstellen kann.

ich so etwas wie dies tue:

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

Während es keine Fehler zu werfen, ist meine Anwendung nicht in der Lage, um ihn abzuholen. Ich habe mein Skript mit dem Plugin "Poster" von Firefox sowie mit cUrl erfolgreich getestet.

Jede Hilfe/Idee würde sehr geschätzt werden.

Antwort

5

Von dem, was ich auf den Symfony2 testing section sehen kann (die Crawler und Client verwendet, um mit der Anwendung zu interagieren), sind Sie annehmen, es als 'CONTENT_TYPE' => 'application/xml' zu haben. So sollten Sie versuchen, die folgenden:

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

Bitte beachte, dass ich es von text/xml zu application/xml geändert, aber beide funktionieren sollte.