Angularjs 需要一些实际的例子吗;“电话通”&&引用;callFake();茉莉花

Angularjs 需要一些实际的例子吗;“电话通”&&引用;callFake();茉莉花,angularjs,jasmine,karma-jasmine,Angularjs,Jasmine,Karma Jasmine,我正在学习用AngularJS实现karma&Jasmine,我正在通过一些例子来更好地理解它 我对callThrough有点困惑 如果我误解了它,请纠正我,它在某种程度上与callFake()有点类似,我们实际上并没有调用该函数。在callFake()中,我们还提供了返回类型的函数,但在callThrough中没有 来自Jasmine doc: 通过将spy与and.callThrough链接,spy仍将跟踪对它的所有调用,但除此之外,它将委托给实际实现 请解释一下 更新: 经过努力,我意识到

我正在学习用AngularJS实现
karma
&
Jasmine
,我正在通过一些例子来更好地理解它

我对
callThrough
有点困惑

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

来自Jasmine doc:

通过将spy与and.callThrough链接,spy仍将跟踪对它的所有调用,但除此之外,它将委托给实际实现

请解释一下

更新:
经过努力,我意识到一篇文章值得分享

你的理解力看起来不错:

间谍:和.callThrough

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

间谍:和.callFake

通过使用and.callFake链接间谍,所有对间谍的调用都将 委托给提供的函数

如果被监视的函数收到假函数需要的参数, 你也可以买


加上:当您添加callThrough时。你不仅在追踪间谍的电话。您还可以调用该方法来测试它。这里的方法实际上是被调用的。在callFake上,您只需通过检查参数来测试它是否被正确调用。不调用真正的方法。这是有道理的,因为它叫
假呼叫

,我更深入地研究了它,并更新了我的答案。哈桑83:谢谢,现在解释得更好了。选择它作为答案。:)