私はメッセージングシステムの統合テストを書いています。ほとんどのテストは、フローのさまざまな段階で、メッセージとそのさまざまなコードパスのカウントをエンドツーエンドで収集します。私が現在行っているテストは、これらのメッセージングコンポーネントに多くのがあり、メッセージの処理時にそれらをインクリメントするという点で、非常に煩わしくなりすぎていpublic static AtomicInteger
ます。テストは、これらのカウントでアサートします。
最悪の部分は、バグを追加しがちな製品にデプロイするときに、これらのカウンターを削除する必要があることです。
クラス全体にカウンターを詰め込む必要なしに、これらのコンポーネントを通過するメッセージの数を取得するようにテストを設計するにはどうすればよいですか?私は、実際のコンポーネントをサブクラス化し、メソッドをオーバーライドし、サブクラスメソッドのカウンターを移動し、これらのサブクラスをテストで使用することを考えていました。より良い設計に関する他の考えはありますか?