このアプリケーションにはエラーを報告するマイクロサービスが含まれています。アプリケーションに例外がスローされ、情報がデータベースに保存されると、エラー報告マイクロサービスにメッセージが送信され、開発者に電子メールが送信されます。これは本番環境では優れていますが、例外が印刷されず、テストが必ず失敗するとは限らないため、統合テストは非常に鈍いものになります。エラーを報告するマイクロサービスを模擬して、メッセージを調べてデータベースにスタックし、ログに記録してから例外をスローするようにしたいと思います。それは可能なことですか?Mockitoでパラメータに応じてvoidメソッドから例外をスローします
ここで嘲笑するメソッドのシグネチャです:
public void emailException(Long exceptionInfoPrimaryKey);
残念ながら、私がPowerMockを使用することはできませんが。
スプリングを使用しています。しかし、そうすることで、統合テストフレームワークの問題が発生します。この場合、Springは両方のBeanをインスタンス化します。つまり、両方とも同じキューのコンシューマとしてQueueFactoryに登録されます。特定のキューをリスンするクラスが1つだけある必要があるため、このアプリケーションが発生すると例外がスローされます。 – cscan
@Profileアノテーションを使用して、両方のBeanで本番と統合のテストを分ける必要があります。実行時にサーバーのバネプロファイルを設定すると、上記の例外は発生しません。 – anand1st