在Jasmine中需要一些"and.callThrough"的实际例子

Sha*_*vek 4 jasmine angularjs karma-jasmine

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

我有点困惑callThrough.

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

来自Jasmine doc:

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

请详细说明一下.

谢谢

has*_*san 7

你的理解看起来很好:

间谍:and.callThrough

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

间谍:and.callFake

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

如果被监视的函数接收到伪造所需的参数,那么你也可以获得这些参数

另外:当你添加callThrough时.你不仅要跟踪间谍的电话.您还可以调用该方法来测试它.这里的方法实际上是调用的.在callFake中你只测试是否通过检查参数正确调用它.不调用真正的方法.自从被召唤以来就是这样fake call