为了测试返回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 ......
答案 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);