2015-04-20 53 views
0

我嘗試用Jasmine測試JavaScript函數。它看起來像這樣:茉莉花測試:如何通過測試函數中調用的函數調用?

show: function(){ 
    this.work(); 
    var mod = new Module(); 
    mod.doSomething(); 
} 

我現在正在測試,如果work()被稱爲show(),這是沒有問題的。但是,然後在mod.doSomething()發生錯誤。這使我的測試失敗,雖然它實際上已經通過。我能做些什麼來防止mod.doSomething被調用或至少被執行。對於未使用的函數調用,是否有像callThrough()這樣的內容?

我唯一的想法是寫一個全局變量,可以設置從任何地方真或假。然後,我擴展mod.doSomething()函數,如果此變量設置爲true,則不會被調用。現在我可以簡單地將變量設置爲true,如果我不想在測試時執行此函數。但我認爲必須有更好的解決方案。有誰能夠幫助我?

回答

1

這是不符合「標準」茉莉花實踐的測試。方法show()應採取一個模塊作爲參數....然後它可以與間諜doSomething() ...