2016-09-23 9 views
0

テストが外部ソースと通信しないようにすることは可能ですか?すべてのテストが外部依存関係を模倣していると思うのですが、私のテストスイートが第三者APIとの意図しない通信を確実にするようなものがあるかどうかを知りたいと思います。PHPUnitテストを外部コミュニケーションなしで内部的に保つにはどうすればいいですか?

+0

外部ソースとの通信方法は?それをguzzle(HTTPクライアントライブラリ)でラップすると、簡単に嘲笑することができます(何か助けが必要な場合は教えてください)。 – Matteo

+0

イベント/リスナー/ジョブ、ソケット、apnsプッシュ、aws、サードパーティAPIを介して通信することになる多くのものがあります。上に述べたように、基本テストの場合に必要と思うすべてのものを嘲笑していますが、テスト中に外部とのコミュニケーションがないことを確認するようなことはありませんか? –

答えて

1

これはLaravelとタグ付けされているので、私はLaravelに基づいた回答が好きだと仮定します。

外部APIとの通信をテストしていないと仮定すると(それはある時点でやる価値があります)、他のアプローチに近づけるのと同じ方法でアプローチしたいと考えています。

モッキング。

モデルとAPIライブラリの両方がデータソースと通信しています。モデルをテストするには、それらをモックして、データベースとやりとりしないようにします。あなたはあなたのAPIに同じことをしたり、結果を返すクラスをモックしたり、それを完全にスキップしてサンプルレスポンスを投げたりする必要があります。

すべては、テストする内容によってまったく異なります。 APIからデータを処理する方法をテストしたくない場合は、APIとやりとりするものを呼び出さないでください。

+0

私はすべて私が知っている限り私は私の質問を明確にすることはできませんが、私はもっと欠場していることを確認するためのバックアップを探しているか分からないすべてを嘲笑しています。 –

+1

バックアップはありません。コードをチェックするだけです。サーバー上で外界との接続を解除するのではなく、何もする必要はありません。 – ollieread

+1

私は多くを考えて、すべてがうまく見えていると思っただけで、それはチェックの価値があると思った。 –

関連する問題