测试返回json响应的api控制器

时间:2017-04-04 10:55:12

标签: json rest symfony phpunit guzzle

为了测试返回json响应的Symfony2项目中的API控制器,我尝试生成一个动作路径,如下所示:

$client->getContainer()->get('router')->generate('/api/register/emailverification/', array('email' => 'email@gmail.com'), true)
$response= $client->getResponse();
$this->assertEquals(200, $response);`

但响应返回null。我不知道是否必须针对此类响应进行特定测试,例如使用guzzle ......

2 个答案:

答案 0 :(得分:1)

在测试中,不应该“生成”路径路径,它们必须是硬编码的:

$client = $this->createClient();
$client->request('GET', '/api/register/emailverification/email@gmail.com');
$this->assertTrue($client->getResponse()->isOk());

但是如果你想测试json,你可以这样做:

$this->assertJson($client->getResponse()->getContent());

您可以在rest extra bundle

中找到其他PHPunit助手

答案 1 :(得分:0)

我相信你应该尝试:

$controllerResponse = $client->getContainer()->get('router')->generate('_validation_email', array('email' => 'email@gmail.com'), true)
$response= $controllerResponse->getResponse();
$this->assertEquals(200, $response);