更新:這裏是我的問題的小提琴。該測試通過一次,失敗,下一次:處理幾個事件聽衆
http://jsfiddle.net/samselikoff/hhk6u/4/
問題是departments
有events.on("userSet:company")
,所以這兩個變量對事件作出響應。
這是關於單元測試的一般性問題。在我的應用程序中,某個事件被觸發,我的應用程序的其他幾個部分也會偵聽此事件。我想單獨測試每件作品,因爲它們執行的功能不同;但要做到這一點,我必須在每次測試中將事件關閉。
這會導致問題,因爲第一次測試必須觸發事件,觸發其他測試中的偵聽器。在仍然測試多個事件偵聽器的情況下,如何保持測試的原子性?
(我正在使用QUnit,但我認爲這是一個更一般的單元測試問題)。
答:
Jeferson是正確的。解決這個問題的一個簡單方法是使用events.once而不是events.on。這樣你就可以從每個測試中清理你的事件。