私は次のようなことをしています。キューからメッセージを聞いて開始し、UTやITを処理するスプリングブートアプリケーションです。今、統合テストクラスから、入力キューに多数のメッセージを投稿すると、アプリケーションがクラッシュしないことを確認したいと思います。Mockito新しいスレッドからメソッドを何回も実行するのを待つ
このメソッドのテストでは、Mockito#spy
を使用して新しいスレッドを開始するよりも、キューに接続してダミーのメッセージを投稿しています。これまでのところ、1つのメッセージに対して他のITと同様に優れています。 ArgumentCaptor
を使用して、キューに送信したメッセージがアプリケーションスレッドによって正常に処理されたことを確認しています。
私が行う方法がわからないのは、何千もの処理メソッド呼び出しが実行されるのを待って、アプリケーションがクラッシュしないことを確認することです。すべてのメッセージがキューから読み取られた後で、テストは終了する必要があります(メッセージはまだ検証されていませんが、これは必須ではありません)。処理時間は1〜2時間にする必要があります。
私はCountDownLatch
について読んだことがありますが、それは実際には使用する助けとなるすべてのメッセージを処理する必要がある限り、スレッドの実行を待つ方法を理解できません。
誰でも私がここでやろうとしていることに対する実装設計を提案できますか?それとも、私がしようとしていることが可能でない可能性はありますか?
ありがとうございます!
更新: テストされたアプリケーションメソッドまたはクラスを変更することはできません。したがって、メソッドへの呼び出し回数を取得する方法はありますか?ありがとう@Mykhailo Kovalskyi
私の場合は、テストされたアプリケーションを変更せずにテストしているアプリケーションから処理されたメッセージの数を取得する方法がわかりません。私がそれを変更できない理由は、それが生産コードであり、テストのためにそれを行うことは許されていないからです。 –
@ bogdan.rusu残念ながら、提供されるコードサンプルがなくても、より具体的で意味のある何かを提案するのは難しいです。 –