gpt4 book ai didi

jasmine - 我可以将提供的函数内的原始方法调用到 Jasmine spy 的 "andCallFake"吗?

转载 作者:行者123 更新时间:2023-12-02 20:02:39 25 4
gpt4 key购买 nike

我可以将原始方法保存在 beforeEach 的变量中,然后在 afterEach 中恢复它,但也许我可以使用一个 spy ,它将在测试套件之间自动重置。

spyOn(Ext, "create").andCallFake(function(className){
if (className === 'Waf.view.Viewport')
// call the original Ext.create method
});

这可能吗?我使用的是 Jasmine 1.3

最佳答案

您可以将原始方法绑定(bind)到假方法中:

var obj = {
method: function(name) { return name + '!'; }
}

var methodFake = function(original, name) {
return 'faked ' + original(name);
}.bind(obj, obj.method)
spyOn(obj, 'method').andCallFake(methodFake);

obj.method('hello') // outputs 'faked hello!'

就其值(value)而言,我不认为这样做是一个很好的做法,但最近当我测试一些 d3 代码时,我发现了这种需要。希望对您有所帮助。

关于jasmine - 我可以将提供的函数内的原始方法调用到 Jasmine spy 的 "andCallFake"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27398525/

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