需要一些“callThrough”&的实际例子。 Jasmine中的“callFake()”

时间:2017-01-01 10:13:42

标签: angularjs jasmine karma-jasmine

我正在学习实施karma& AngularJS中的Jasmine我将通过一些示例来更好地理解它。

我对callThrough感到有些困惑。

如果我误解了它,请纠正我,它与callFake()略有相似,我们实际上并没有调用该函数。在callFake()中,我们还提供了一个返回类型但不在callThrough中的函数。

来自Jasmine doc:

  

通过使用and.callThrough链接间谍,间谍仍将跟踪对它的所有调用,但此外它将委托给实际的实现。

请对此有所了解。

由于

更新

经过努力,我意识到一篇文章值得分享。 Here is a Medium article to anyone who stumbles across this question

1 个答案:

答案 0 :(得分:6)

您的理解看起来不错:

间谍:and.callThrough

  

通过与and.callThrough链接间谍,间谍仍然会跟踪所有   调用它,但另外它将委托给实际   实施

间谍:and.callFake

  

通过使用and.callFake链接间谍,所有对间谍的调用都会   委托给提供的功能。

     

如果被监视的函数接收到假冒所需的参数,   你可以得到那些

添加callThrough时,

加号:。你不仅要跟踪间谍的电话。您还可以调用该方法来测试它。这里的方法实际上是调用的。在callFake中你只测试是否通过检查参数正确调用它。不调用真正的方法。这就是因为它被称为fake call