0

JavaScript で、コールバックの完了を待つために単体テストが必要になるケースは考えられません。

単体テストとは、最小の部分であるユニットをテストすることです。だから私はテストを書くでしょう:

  • 私がテストしている機能のために
  • コールバック関数の
  • モック(またはスパイ)を使用して、関数がコールバックを正しく呼び出すことを確認するには

しかし、Jasmine や Mocha などのテスト フレームワークでは、非同期テストが可能であることがわかります。統合テスト (または BDD) では意味があると思いますが、単体テストでは意味がありません。非同期テストが必要な単体テストの例はありますか?

4

1 に答える 1

1

非同期テストは、オブジェクトごとのメソッドのリストを調べて期待どおりに動作することを確認するよりも、実際のユースケースを作成する行動駆動型開発 (BDD) テストに適していることに同意します。

単体テストに関しては、まだ非同期テストの余地があると思います。クラスをテストしていて、メソッドの 1 つが REST エントリ ポイントに対して AJAX リクエストを実行してデータを取得し、結果を返す (たとえば、ユーザーを認証する) とします。これはまだ単一の計算単位です。

Auth.validate({user: "smithj", pass: "mypwd"});

ただし、テストを同期的に実行すると、リモート エントリ ポイントから応答を取得する前に結果を確認することになるため、メソッドが正しく実行されたことを確認できません。

于 2013-05-29T05:50:57.293 に答える