2014-01-20 2 views
1

간단한 REST API를 번들에 포함하고 있으며 일관되게이 API의 결과를 테스트 할 수있는 몇 가지 테스트를 원합니다.symfony 기능 테스트 클라이언트가 403을 반환 함 (금지됨)

은 단순히 구현하는 첫 번째 테스트는 URL에 GET 호출 :이처럼 내 URL을 호출 할 때 나는 빈 컨텐츠 몸을 얻고 나는 응답의 HTTP 상태 코드를 테스트, 그러나

namespace Me\Bundle\ApiBundle\Tests\Controller; 

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; 

class SomeControllerTest extends WebTestCase { 

    public function testGetSomething() 
    { 
     $client = static::createClient(); 

     $crawler = $client->request('GET', 'http://local.api.example.com/app_dev.php/v2.0/something'); 

      // Purely here for testing purposes! 
     print_r($client->getResponse()->getContent()); 
    } 

} 

를 I 403 :

$client->getResponse()->getStatusCode(); 

정확히 동일한 URL을 브라우저 나 cURL 명령에 넣으면 올바른 결과를 얻습니다.

제가 잘못하고있는 것이 분명한 점은 무엇입니까?

추 신 : 403은 API에서 설정 한 모든 경로를 사용하지만 실제 경로는 존재하기 때문에 도착해서는 안됩니다.

답변

2

표준 클라이언트가 실제로 서버에 http 요청을 보내지 않습니다. 단지 클라이언트가 심포니 커널을 호출하기 만하면됩니다. 따라서 가능한 해결책은 귀하의 URL을 변경하는 것입니다.

$crawler = $client->request('GET', '/v2.0/something'); 
+0

감사합니다. 나는 이것이 사실이되기를 바랐다. 나는 문서를보고 건너 뛰었지만 그것에 대한 어떤 언급도 찾을 수 없었다. – Luke

+0

설명서를 읽는 것은 분명하지 않습니다. –