テストが外部ソースと通信しないようにすることは可能ですか?すべてのテストが外部依存関係を模倣していると思うのですが、私のテストスイートが第三者APIとの意図しない通信を確実にするようなものがあるかどうかを知りたいと思います。PHPUnitテストを外部コミュニケーションなしで内部的に保つにはどうすればいいですか?
答えて
これはLaravelとタグ付けされているので、私はLaravelに基づいた回答が好きだと仮定します。
外部APIとの通信をテストしていないと仮定すると(それはある時点でやる価値があります)、他のアプローチに近づけるのと同じ方法でアプローチしたいと考えています。
モッキング。
モデルとAPIライブラリの両方がデータソースと通信しています。モデルをテストするには、それらをモックして、データベースとやりとりしないようにします。あなたはあなたのAPIに同じことをしたり、結果を返すクラスをモックしたり、それを完全にスキップしてサンプルレスポンスを投げたりする必要があります。
すべては、テストする内容によってまったく異なります。 APIからデータを処理する方法をテストしたくない場合は、APIとやりとりするものを呼び出さないでください。
私はすべて私が知っている限り私は私の質問を明確にすることはできませんが、私はもっと欠場していることを確認するためのバックアップを探しているか分からないすべてを嘲笑しています。 –
バックアップはありません。コードをチェックするだけです。サーバー上で外界との接続を解除するのではなく、何もする必要はありません。 – ollieread
私は多くを考えて、すべてがうまく見えていると思っただけで、それはチェックの価値があると思った。 –
- 1. 外部キーを保存するにはどうすればよいですか?
- 2. 内部例外をキャッチするにはどうすればよいですか?
- 3. データベースを内部メモリから外部メモリに移動するにはどうすればよいですか?
- 4. .NET外部コミュニケーション
- 5. 内部から外部プロパティにアクセスするにはどうすればよいですか?
- 6. スクリプトを外部と内部でリンクするにはどうすればよいですか?
- 7. いくつかの内部モジュールなしでnode.jsをビルドするにはどうすればよいですか?
- 8. 外部キーフィールドをnullに戻すにはどうすればいいですか?
- 9. 外部モジュールから外部変数と関数をインポートするにはどうすればいいですか?
- 10. Netbeansの内部または外部のコマンドエラーを修正するにはどうすればよいですか?
- 11. PHPUnitでexception * handling *をテストするにはどうすればよいですか?
- 12. 部分的なメソッドの他の部分に移動するにはどうすればいいですか?
- 13. 外部URLを取得するにはどうすればいいですか
- 14. クラス内に2つの外部キーを設定するにはどうすればよいですか? DJANGO ORM
- 15. 外部URLをiOSアプリケーションにハードコーディングしないようにするにはどうすればよいですか?
- 16. アンドロイドで外部ストレージを利用できる場合でも、内部ストレージにファイルを(一般に)保存するにはどうすればよいですか?
- 17. アプリ内ではなく外部ブラウザでリンクを開くにはどうすればよいですか?
- 18. 外部HTMLを含めるにはどうすればいいですか?
- 19. 外部キーにリンクされたテーブルをテストするにはどうすればよいですか?
- 20. 外部ファイルからjavascriptコードを適切にテストするにはどうすればよいですか?
- 21. 外部非静的クラスのオブジェクトを使用して静的内部クラスメソッドにアクセスするにはどうすればよいですか?
- 22. gridviewの内部でhrefリンクを動的にするにはどうすればいいですか?
- 23. 外部から内部へコンポーネントに動的にデータを設定するにはどうすればいいですか?
- 24. cv :: Matが内部データまたは外部データを使用しているかどうかを確認するにはどうすればよいですか?
- 25. フォームの一部をC#で部分的に透明にするにはどうすればよいですか?
- 26. 日付の値を部分的に保存するにはどうすればいいですか?
- 27. 外部プロセスから不要なストリームをどうすればいいですか?
- 28. 外部webpackモジュールを動的にインポートするにはどうすればいいですか?
- 29. 外部JSONファイルを角度2のテストにロードするにはどうすればよいですか?
- 30. 外部JavaScriptファイルをインポートするにはどうすればよいですか?
外部ソースとの通信方法は?それをguzzle(HTTPクライアントライブラリ)でラップすると、簡単に嘲笑することができます(何か助けが必要な場合は教えてください)。 – Matteo
イベント/リスナー/ジョブ、ソケット、apnsプッシュ、aws、サードパーティAPIを介して通信することになる多くのものがあります。上に述べたように、基本テストの場合に必要と思うすべてのものを嘲笑していますが、テスト中に外部とのコミュニケーションがないことを確認するようなことはありませんか? –