2017-06-15 68 views
0

我正在測試一個指令的角度和代碼覆蓋的目的我需要進入該函數傳遞給第二個參數的刪除功能:是否有可能測試一個函數的內容是一個間諜的參數

Myservice.remove(param1, function() { 
    //test contents of this.. 
}); 

然而Myservice被嘲笑,與remove功能是間諜:

myservice = { 
    remove: jasmine.createSpy('Myservice.remove') 
} 

我試過callThrough()callFake(),但我相信這是更多的只是返回的結果Ø f刪除,不覆蓋參數功能,所以自然我沒有區別。

所以在我的測試中,我有以下幾點:

it('should do something', function() { 
    // generic directive setup 
    expect(myservice.remove).toHaveBeenCalled(); 
}); 

這個工程和測試通過,但我無法涵蓋在參數該功能,任何想法如何進行呢?

回答

0

答案是用正確的參數調用僞函數,然後調用其中的函數。

myservice = { 
    remove: jasmine.createSpy('Myservice.remove').and.callFake(function(data, callback) { 
     callback(); 
    }); 
} 

相同的測試通過,但現在覆蓋範圍完全覆蓋作爲參數傳入的函數。

相關問題