2016-09-28 16 views
0

PHPUnitにはデータベースを事実上テストするのにmethodsがありますが、どのようにしてカールのようなHTTPサービスをテストできますか?curl httprequestのテストケースを作成

My classメソッドはURLを取得し、サーバーに送信するパラメータを要求します。それはjsonとして答えを受け取り、このjsonを解析して戻す別のメソッドに送ります。

このクラスメソッドのPHPUnitテストケースを作成します。サーバーに実際のURLを提供する必要がありますか?サーバはこのテストケースに成功/エラーメッセージを返すべきですか?

+0

httpclientとしてguzzleを使用します。モックコールの機能があります – Matteo

答えて

1

クラスのメソッドの中にcurlの接続を持たずに、curlの呼び出しをそれ自身のクラスにラップし、それをモックしてクラスに渡します。

このようにして、モックに実際のjsonが返され、カールエラーがシミュレートされて(モックが実際のcurlライブラリのように動作するように)、幸せなパスをテストできます。

同じことが解析部分に適用されます。パースコードを自分のクラスに移動して "main"クラスに注入すると、そのコードを疑似して解析エラーをシミュレートすることができます。

ユニットテストでは、実際のネットワーク通話は絶対にしないでください。

+0

最初の段落について、カールをテストケースで直接呼び出さないで別のクラスとしてテクスチャの中で呼び出すことを意味しますか?正確に何を意味するのかをいくつかのサンプルコードで明確にしてください。 – user4271704

関連する問題