更新:ここに私の問題のフィドルがあります。テストは 1 回成功し、次回は失敗します。
http://jsfiddle.net/samselikoff/hhk6u/4/
問題はdepartments
hasevents.on("userSet:company")
であるため、両方の変数がイベントに応答します。
これは単体テストに関する一般的な質問です。私のアプリでは、特定のイベントが発生し、アプリの他のいくつかの部分がこのイベントをリッスンします。それらは異なる機能を実行しているため、各ピースを個別に単体テストしたいと思います。しかし、これを行うには、各テストでイベントを発生させる必要があります。
最初のテストでイベントを発生させ、他のテストでリスナーをトリガーする必要があるため、これは問題を引き起こします。複数のイベントリスナーをテストしながら、テストをアトミックに保つにはどうすればよいですか?
(私は QUnit を使用していますが、これはより一般的な単体テストの質問だと思います)。
答え:
ジェファーソンは正しいです。これを解決する簡単な方法の 1 つは、events.on の代わりに events.once を使用することです。このようにして、各テストからイベントをクリーンアップします。