1. ホーム

[解決済み】JUnitを使用して非同期処理をテストする方法

2022-04-03 05:39:08

質問

JUnitで非同期処理を起動するメソッドをどのようにテストしますか?

私のテストがプロセスの終了を待つようにする方法がわかりません(それは正確にはユニットテストではなく、1つだけではなくいくつかのクラスを含むので、統合テストのようなものです)。

どのように解決するのですか?

IMHOは、ユニットテストがスレッドを作成したり、待機したりするのは悪い習慣だと考えています。これらのテストは数秒で実行されることを望んでいるはずです。そこで、非同期処理をテストするための2ステップのアプローチを提案したいと思います。

  1. 非同期プロセスが正しく送信されることをテストします。非同期リクエストを受け付けるオブジェクトをモックし、サブミットされたジョブが正しいプロパティを持っているかなどを確認できます。
  2. 非同期コールバックが正しい動作をしているかをテストします。ここでは、もともと投入されたジョブをモック化し、それが適切に初期化されていると仮定して、コールバックが正しいかどうかを検証します。