ist. Ich habe Testing im Symfony2-Buch gelesen, aber ich fand keinen nützlichen, um dies zu tun. Ich erstelle Test für Controller in meiner Anwendung und dies ist der Controller (nur ein entsprechender Code) ich versuche zu testen:Symfony2: Überprüfen Sie, ob der JSON-Wert als Antwort vorliegt und ob er im Test
public function createCompanyAction(Request $request) {
$response = array();
$response["success"] = false;
try {
if (statement) {
// do the magic here
$response["success"] = true;
} else {
$response['errors'] = "some error";
}
} catch (Exception $ex) {
$response["exception"] = $ex->getMessage();
}
return new JsonResponse($response);
}
Der Test wird nur passieren, wenn $response
TRUE Wert in success
Schlüssel hat, aber ich weiß nicht, wie das Controller von meinem Test zu überprüfen. Dies ist der Code, den ich habe:
$client->request('POST', '/create-company', $data);
$response = $client->getResponse();
$this->assertEquals(200, $client->getResponse()->getStatusCode(), 'HTTP code is not 200');
$this->assertTrue($response->headers->contains('Content-Type', 'application/json'), 'Invalid JSON response');
$this->assertNotEmpty($client->getResponse()->getContent());
Wie überprüfe ich dies?
Es ist besser, HTTP-Statuscodes nicht fest zu codieren. Es macht den Code im Laufe der Zeit weniger lesbar und wartbar. Ich empfehle, zu diesem Zweck Konstanten '\ Symfony \ Component \ HttpFoundation \ Response :: HTTP_OK' zu verwenden. –