我正在学习实施karma
& AngularJS中的Jasmine
我将通过一些示例来更好地理解它。
我对callThrough
感到有些困惑。
如果我误解了它,请纠正我,它与callFake()
略有相似,我们实际上并没有调用该函数。在callFake()
中,我们还提供了一个返回类型但不在callThrough
中的函数。
来自Jasmine doc:
通过使用and.callThrough链接间谍,间谍仍将跟踪对它的所有调用,但此外它将委托给实际的实现。
请对此有所了解。
由于
经过努力,我意识到一篇文章值得分享。 Here is a Medium article to anyone who stumbles across this question
答案 0 :(得分:6)
您的理解看起来不错:
间谍:and.callThrough
通过与and.callThrough链接间谍,间谍仍然会跟踪所有 调用它,但另外它将委托给实际 实施
间谍:and.callFake
添加callThrough时,通过使用and.callFake链接间谍,所有对间谍的调用都会 委托给提供的功能。
如果被监视的函数接收到假冒所需的参数, 你可以得到那些
加号:。你不仅要跟踪间谍的电话。您还可以调用该方法来测试它。这里的方法实际上是调用的。在callFake中你只测试是否通过检查参数正确调用它。不调用真正的方法。这就是因为它被称为fake call