1

作成したタイマーの単体テストを書いていますが、他のプロジェクトでよく遭遇する問題に遭遇しています。タイマーを開始し、しばらく待ってから、タイマーの実行後にタイマーの値をチェックする単体テストを作成したいと思います。その後、タイマーにあるすべての機能をテストできます。

これを行う方法はありますか?ドキュメントには何も表示されません。これが適切でない場合は、代わりに何をすべきかアドバイスしてください。

4

2 に答える 2

5

時間が関係するものを単体テストしている場合は、手動で変更できるように時間の概念を仮想化する必要があります。タイマーに何を使用しているかに応じて、これを実行するのが簡単または難しい (または組み込み) 場合がありますが、完了したら、「setVirtualTime(time)」などを使用して単体テストを作成できます。

このアプローチのいくつかの利点:

  1. 単体テストの実行時間は、問題のタイマーの長さに依存しません (タイマーを時間/日で測定すると、これが重要になります)
  2. 単体テストは決定論的であり、スレッド スケジューリングの気まぐれに応じてランダムに失敗することはありません。
于 2012-10-11T20:23:49.473 に答える