httpリクエストを行うコードの単体テストを行うにはどうすればよいですか?実際のhttpコールを行う代わりに、mockオブジェクトを使用して、httpリクエストに正しいボディとヘッダーが設定されていることを確認します。PHPUnitモックリクエストオブジェクトと本文とヘッダを抽出します
-1
A
答えて
0
説明には多くの情報が含まれていません。しかし、私はこのサンプルコードを使ってあなたを導くことができます。
$httpMock = $this->getMockBuilder('\Vendor\Path\HttpHandlerYouWantToMock')
->disableOriginalConstructor()
->setMethods(['setBody', 'setHeader'])
->getMock();
$httpMock->expects($this->once())
->method('setBody')
->with($this->identicalTo('{"test":"test"}'));
$httpMock->expects($this->once())
->method('setHeader')
->with($this->identicalTo('Content-Type: application/json'));
$service = new SomeService($httpMock);
$service->post('/someApi', '{"test":"test"}');
だけですべてが同じようしかし、あなたのケースでどのように見えるべきかの表現でこのコードは、私はあなたが使用しているHTTPハンドラ見当がつかないか、この1つはに依存している他のサービスが含まれている場合。
主なアイデアは、あなた自身のサービスで使用されるすべてのサービスを模擬するだけです。そして、この模擬のためにどのような方法を使用して、どのデータをそこに渡すべきかを定義します。
最後にphpunitのマニュアルを使用します。https://phpunit.de/manual/current/en/test-doubles.html
+0
彼はhttpクラスを使用していないことを肯定しています。代わりに 'curl_init '直接... – iRaS
関連する問題
- 1. phpはhtmlタグとともにhtml本文のコンテンツを抽出します。
- 2. ポートからメールを受信し、本文とヘッダーを抽出します
- 3. phpはメール本文からテキスト/プレーンを抽出します
- 4. HttpResponseからメッセージ本文を抽出します
- 5. PHPで本体と一緒にヘッダを出力するには?
- 6. 文字列から文字列とintを抽出します。
- 7. RailsでMSISDNヘッダを抽出する
- 8. JSONで絵文字を抽出して抽出します
- 9. dkim用にPHPで本文とヘッダを正しくハッシュする方法は?
- 10. ヘッダと本文でのpython投稿リクエストの構築方法
- 11. PHPUnitでPHPヘッダをテストする
- 12. python:電子メールの本文から画像を抽出してダウンロードします
- 13. Silverlightリッチテキストエディタ - 文字列として抽出しますか?
- 14. RegEx:メールの本文から単語を抽出する
- 15. PythonリクエストからHTTPレスポンス本文を抽出するには?
- 16. 電子メールの本文をGoogleスプレッドシートに抽出する
- 17. NginxのカスタムPHP error_pagesとヘッダのステータスコードと本文の内容が異なる
- 18. 文字列を抽出し、整数として警告する
- 19. 既知のシーケンスでfastaファイルからシーケンスとヘッダを抽出する
- 20. データベースの抽象基本クラスとサブクラスをモデル化します
- 21. 関数本体を抽出する
- 22. Pythonの検索と文字の抽出
- 23. R - 文字列操作と抽出
- 24. 抽出テーブルのデータとXML文書へ
- 25. phpunitとyii - (PHPUnit/Autoload.php):ストリームを開くことに失敗しました:
- 26. 文字列からキーと値を抽出すると
- 27. JQueryを使用してHTML本文からテキストと画像の両方を抽出する方法
- 28. 文字列を抽出して日付と比較する
- 29. 文字列から数字と文字を抽出するR
- 30. 文字列から複素数を抽出しようとしています
これはあまりにも情報が少ないためです。あなたがテストしたいコードを投稿し、おそらくテストする方法を言うことができます。まず第一に、嘲笑されたオブジェクトを受け取って使用できるコードが必要です。この定義では、httpリクエストのクラスを使用する必要があります。たとえば、curlの場合:https://gitlab.w00tserver.org:617/snippets/2 – iRaS