コントローラーアクションでデータベースの挿入/更新/削除を使用して、Symony2 で非常に単純な REST コントローラーを作成しました。
実稼働データベースを汚染することなく、これらのコントローラー アクションの単体/統合テストを作成する良い方法はありますか? さまざまな環境で作業する必要がありますか? または、フレームワーク ベンダーから提案された方法はありますか?
電流コントローラーの例:
public function postAction()
{
$json = $this->getRequest()->getContent();
$params = json_decode($json);
$name = $params->name;
$description = $params->description;
$sandbox = new Sandbox();
$sandbox->setName($name);
$sandbox->setDescription($description);
$em = $this->getDoctrine()->getManager();
$em->persist($sandbox);
$em->flush();
$response = new Response('/sandbox/'.$sandbox->getId());
$response->setStatusCode(201);
return $response;
}
現在のテスト例:
class SandboxControllerTest extends WebTestCase
{
public function testRest()
{
$client = static::createClient();
$crawler = $client->request('POST', '/service/sandbox', array(), array(), array(), json_encode(array('name' => 'TestMe', 'description' => 'TestDesc')));
$this->assertEquals(
201, $client->getResponse()->getStatusCode()
);
}
}