gpt4 book ai didi

javascript - Jasmine spy callThrough 和 callFake

转载 作者:可可西里 更新时间:2023-11-01 01:53:48 29 4
gpt4 key购买 nike

我有一个场景,我想在调用回调后在 beforeEach 上调用 done()

我尝试按如下方式执行此操作:

spyOn(scope, 'onAdmin').and.callThrough().and.callFake(function(){done()})

但我不确定我的行为是否正确。基本上我想要实现的是能够在每个回调完成它所做的事情后调用 done()

更新:解决方案

scope.onAdminBackup = scope.onAdmin;
spyOn(scope, 'onAdmin').and.callFake(function(admin) {

scope.onAdminBackup();
done() ;

})

最佳答案

我从来没有将这些类型的函数链接在一起,因为在我看来它们似乎在做相反的事情。你是说当我调用这个方法时 -onAdmin - 在范围内正常调用它。这就是 jasmine 为我们提供的 callThrough 方法。

但是随后您还链接了一个 callFake 方法,因此您说但实际上不调用它而是调用这个假函数 - 非常矛盾。

如果你想在方法 onAdmin 上调用 spy 而不是它被触发,你希望它做一些其他的事情 - 一些模拟的事情 - 然后使用 .and.callFake(fn)。还要像上面的@stefan 所说的那样考虑 - 不要调用函数 - callFake 只是想要一个函数作为参数,它会自己调用它。

这可能更符合您正在寻找的内容,如果没有向我们展示更多代码的话。

spyOn(scope, 'onAdmin')and.callFake(done)

关于javascript - Jasmine spy callThrough 和 callFake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24997174/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com