5
私は、特定のメッセージを送信すると、サーバーが設定された時間枠内で応答しないと予想するTCPソケットを介して通信のテストを行っています。予想されるタイムアウトのJUnitテスト
サーバーの動作は制御できません。
設定された時間枠内に完了していないと、テストに失敗することがあります。しかし、どのように私は反対を行うことができます、それは時間枠内で完了しないために合格する?
@Test (timeout=1000)
を使用して、1秒以内に完了しなければテストに失敗することがあります。
しかし、Junit 4を使用すると、予想されるタイムアウトを肯定的な結果としてテストする機能がありますか?私。テストは時間枠内で完了すれば失敗し、そうでない場合は合格となりますか?
はタイムアウトが例外をスローしていますか?存在する場合は、そのタイムアウト例外をテストできます。 – Compass
これに注意してください。私は 'timeout'によってスローされた例外を' expect'できないと思います。タイマーを使用するか、操作の時間を確認して、希望の時間を過ぎた場合は、予期しない例外を投げることができます。しかし、非常に効率的ではないようです。 – Zircon
また、テストの目的は何ですか?サーバーの下流にコードのスコープから外れている場合、私はあなたの目的をテストすることがどれほど有益なのかよく分かりません。あなたのコードがタイムアウトを処理することを期待している場合は、ソケットをモックして例外をスローするだけです。 – Compass