Ich baue eine REST API mit Symfony2. Ich verwende bereits Liip bundle für meine Funktionstests zusammen mit Alice und Faker, um alle Fixtures zu generieren. Ich habe jedoch wenig Probleme, wenn ich POST-Aufrufe selbst testen möchte, solange JSON in den POST-Daten enthalten sind, was meine Funktionen ziemlich lang, hässlich und unlesbar macht.Symfony2 API Test POST mit YAML/Faker
habe ich beschlossen, die gefälschte JSON aus der Klasse zu bewegen, um sie zu YAML-Dateien konvertieren und laden sie dann Symfony Parser verwenden:
private function loadYaml($resource){
$data = Yaml::parse(file_get_contents('src/AppBundle/DataFixtures/YAML/' . $resource . '.yml'));
return $data;
}
Das scheint ganz gut zu funktionieren, da ich sie leicht zurück konvertieren zu JSON-Objekten und dann verwenden Sie es in den Anruf:
$postData = json_encode($this->loadYaml('newapplication'));
$this->client->request(
'POST',
'/api/application/save/',
array('data' => $postData), // The Request parameters
array(), // Files
array(),
'mybody', // Raw Body Data
true
);
Meine erste Frage ist: Ist das ein richtiger Ansatz? Gibt es ein Bündel, das ich vermisst habe, das mein Leben viel einfacher machen wird?
Meine zweite Frage ist, ob es möglich sein wird, Faker innerhalb dieser YAML-Konstruktionen zu verwenden. Auf meinen Fixtures rufe ich Faker-Funktionen auf (z. B. < firstName()>), die beim Laden von Fixtures meine Entitäten automatisch mit zufälligen, aber aussagekräftigen Werten füllen. Wäre es möglich, sie in diesen YAML-Konstruktionen zu verwenden?
Vielen Dank! ;)
In unserer Anwendung werden Daten innerhalb der Anforderungsparameter gesendet. Ich benutze WebTestCase von Liip Bundle, das ein paar interessante Funktionen hinzufügt. – MarcSitges