0
使用Jasmine Spies时,andCalledThrough()
方法与toHaveBeenCalled
有什么不同,它实际上是否完全运行原始方法?我应该使用它的任何理想场景?方法`toHaveBeenCalled()`和`andCalledThrough()`有什么区别?
使用Jasmine Spies时,andCalledThrough()
方法与toHaveBeenCalled
有什么不同,它实际上是否完全运行原始方法?我应该使用它的任何理想场景?方法`toHaveBeenCalled()`和`andCalledThrough()`有什么区别?
这些都是在刺探一个函数的两个不同的步骤。
当你在一个函数上声明一个spy
时,在函数被调用之前,你可以附加一些指令去调用该函数时应该做的事情。 and.callThrough()
表示将使用实际的实现。其他选项是and.callFake()
和and.returnValue()
,它允许你嘲笑的回应,而不是使用实际的执行情况。
在你侦察到的函数被调用后,你可以使用expect
和toHaveBeenCalled
及其变体验证它是否被调用。
请参阅documentation。
基本上在嘲笑它被用来执行你的模拟功能,但“andCalledThrough()”使用这个调用功能,并且也执行它和“toHaveBeenCalled”这只能检查功能是否在文件中或不和获取调用 –