タイマーを使用して定期的に関数を呼び出すコンポーネントがあります。外部から、そのタイマーのレートを設定できます。
これをテストするのは基本的に簡単です。タイマーを設定し、しばらく待って、関数の呼び出しを数え、期待したものと比較します。
タイマーを無効にするオプションもあります。どうすればそれをテストできますか?
タイマーが x+1 で呼び出す可能性があるため、時間 x を待機するだけでは十分ではありません。
より良いアプローチはありますか?
タイマーを使用して定期的に関数を呼び出すコンポーネントがあります。外部から、そのタイマーのレートを設定できます。
これをテストするのは基本的に簡単です。タイマーを設定し、しばらく待って、関数の呼び出しを数え、期待したものと比較します。
タイマーを無効にするオプションもあります。どうすればそれをテストできますか?
タイマーが x+1 で呼び出す可能性があるため、時間 x を待機するだけでは十分ではありません。
より良いアプローチはありますか?
あなたの言語の機能をテストしようとしないでください。js がメソッドを提供する場合はsetInterval
、それが機能すると仮定します。setInterval
コードが正しく呼び出す場合にテストする必要があるもの。私はjsのテストについてあまり知りませんが、できればモックして、呼び出されたかどうかを確認してください。モックできない場合は、もう 1 レベルの間接化を使用してください。タイマー用の独自のラッパーを作成します-ロジックなしで、呼び出しを渡すだけです。次に、テストで、そのラッパーが呼び出されたかどうかを確認できます。テストで待機/スリープを使用するのは避けたい