2009-06-25 9 views
1

私はネットワーク通信を担当するクラスを持っています。私はそれのための単体テストをしたいと思います。ネットワーク関連クラスのユニットテストを書く

ここで私はそれをテストするために立ち往生していますが、私は通信するサーバを実装する必要がありますが、それは順番に独自のテストが必要です。

どのようにこのようなクラスのテストを記述しますか?

答えて

5

低レベルのドライバを作成していない限り、クラスは間違いなく実際の通信を行うために他のクラスに依存しています。そのような場合、私は簡単に嘲笑されない限り、それらのクラスまたはラッパーを提供するために依存性注入を使用します。テストでは、使用しているクラスのモックバージョン(または実際のクラスをモックできない場合はラッパー)を提供します。適切なパラメータを持つ正しいメソッドが、指定したモックのメソッドによって呼び出されていることを確認します。実際の依存関係からすべての動作をカバーしていることを自分自身で満足するのに十分な単体テストがあることを確認してください。あなたのユニットテストにはこれで十分です。

また、いくつかの統合テストが必要です。残念なことに、これを行う最も簡単な方法は、おそらく通信するフルアップモックサーバーを開発することです。モックサーバーはインターフェイスを実装するだけで済み、相手側の実際のコードではありません。モックサーバーで予想される動作が発生するように、統合テストのためにサーバーを設定できるようにいくつかの余分なメソッドを用意してください。

1

あなたは、ネットワーク通信の責任だクラスを-testing ユニットしているなら、あなたあなたが正しく通信をやっているだけテスト。したがって、通信するためのモック(ダミーのように)サーバを用意してください。 EasyMockやjMockitのようなモックライブラリはたくさんあります。実際のサーバーとの実際の通信をテストする場合は、のテストです。もちろん、単体テストに含まれるものの正確な定義は、開発者ごとに異なります。

関連する問題