2017-12-15 16 views
3

데이터 또는 STH에 대한 몇 가지 테스트를 작성하기 위해 HTTP 요청을 어떻게 조롱 할 수 있습니까?PHPUnit : HTTP 요청을 조롱하려면 어떻게해야합니까?

public function serve_request() { 

    // Check request method 
    if ($_SERVER['REQUEST_METHOD'] !== 'GET') { 

     $this->send_response(405, 'Invalid method: ' . $_SERVER['REQUEST_METHOD']); 
     die; 

    } 

예를 들어 어떻게 요청 방법을 테스트해야합니까? 잠깐 혼란스러워했습니다. 나 또한 HTTP 요청을 말리려고했지만 데이터에 액세스 할 수 없습니다. 모든 제안을 환영합니다.

답변

0

테스트에서 $ _SERVER를 다른 값으로 직접 수정할 수 있습니다. 그러면 다른 값을 테스트 할 수 있습니다. 따라서 실행 전에 테스트에 $_SERVER['REQUEST_METHOD'] = 'foo'을 수행 할 수 있습니다.

그러나이 기능에 die이 있기 때문에 phpunit 실행이 중단됩니다. 이 기능 부분을 테스트하려면 die 명령을 다른 위치로 이동해야합니다. phpunit을 사용하여 코드의 해당 부분을 테스트 할 수 없게 만듭니다.

+0

$ _SERVER 값을 직접 수정할 수는 있지만 db 데이터를 테스트 할 수는 없다는 것을 알고 있습니다. 어쩌면, 나는 HTTP 요청을 조롱 할 필요가있다. –

+0

어떤 db 데이터입니까? db 연결을 조종하여 제어 할 수 있도록하십시오. 그러나 그것은 다른 질문입니다. – Schleis

+0

나는 이것을 내 마음 속에 간직 할 것이다. –