2017-12-15 14 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

私はこれを私の心の中に残しています。 –

関連する問題