返回JSON响应
为了测试在返回JSON响应的Symfony2项目的API控制器测试API控制器,我试图生成喜欢这里的行动路线:返回JSON响应
$client->getContainer()->get('router')->generate('/api/register/emailverification/', array('email' => '[email protected]'), true)
$response= $client->getResponse();
$this->assertEquals(200, $response);`
但响应返回null 。我不知道是否有做这种类型喜欢使用狂饮响应的特定测试...
在测试中,一个人不能“产生”路线路径,它们必须被硬编码:
$client = $this->createClient();
$client->request('GET', '/api/register/emailverification/[email protected]');
$this->assertTrue($client->getResponse()->isOk());
但是,如果你想测试JSON,你可以这样做:
$this->assertJson($client->getResponse()->getContent());
你可以在rest extra bundle中找到其他PHPunit助手。
请如何添加一个主机到这个请求,因为它返回404(我的主机是127.0.0.1:8000) – Christophegonfrere
但是你的代码在你的浏览器中工作吗?这是第一步。 – COil
是的,它工作正常 – Christophegonfrere
我相信你应该尝试:
$controllerResponse = $client->getContainer()->get('router')->generate('_validation_email', array('email' => '[email protected]'), true)
$response= $controllerResponse->getResponse();
$this->assertEquals(200, $response);
仍然是相同的问题 – Christophegonfrere
在测试中你不应该“生成”路由,它们必须被硬编码。 – COil
我试过这个:$ client = static :: createClient(); $ crawler = $ client-> request('GET','/ api/register/emailverification /', array('email'=>'[email protected]m')); $ response = $ client-> getResponse(); $ this-> assertEquals(200,$ response-> getStatusCode());它返回404 – Christophegonfrere