2015-12-02 137 views
0

使用Jasmine Spies時,andCalledThrough()方法與toHaveBeenCalled有什麼不同,它實際上是否完全運行原始方法?我應該使用它的任何理想場景?方法`toHaveBeenCalled()`和`andCalledThrough()`有什麼區別?

+0

基本上在嘲笑它被用來執行你的模擬功能,但「andCalledThrough()」使用這個調用功能,並且也執行它和「toHaveBeenCalled」這隻能檢查功能是否在文件中或不和獲取調用 –

回答

2

這些都是在刺探一個函數的兩個不同的步驟。

當你在一個函數上聲明一個spy時,在函數被調用之前,你可以附加一些指令去調用該函數時應該做的事情。 and.callThrough()表示將使用實際的實現。其他選項是and.callFake()and.returnValue(),它允許你嘲笑的迴應,而不是使用實際的執行情況。

在你偵察到的函數被調用後,你可以使用expecttoHaveBeenCalled及其變體驗證它​​是否被調用。

請參閱documentation