gpt4 book ai didi

javascript - 我如何在 Jasmine 中测试回调

转载 作者:行者123 更新时间:2023-11-28 00:09:18 26 4
gpt4 key购买 nike

我有类 SomeClass 和方法 SomeClass.fetch()

var repository = {
get: function(obj) {
//...
}
};

var cache = false;

var SomeClass = {

init: function() {
//...
},

fetch: function () {
var _this = this;

repository.get({
method: 'getRecentDialogsList',
success: function (result) {
if (!cache) {
_this.set(result);
_this.sort();
_this.trigger('fetch:success', _this);
}

_this.trigger('fetch:ajaxSuccess', _this);
}
});
}
}

我如何测试 SomeClass.fetch() 并检查是否已被调用 this.set()this.sortthis.trigger 带参数?

最佳答案

您必须使用 spy :

describe("SomeClass Test", function() {
it("calls the set() method when fetch is called", function() {
spyOn(SomeClass, "set");
SomeClass.fetch();
expect(SomeClass.set).toHaveBeenCalled();
});
});

您甚至可以完全替换被调用的方法(例如,如果需要很长时间才能完成),如下所示:

spyOn(SomeClass, "set").and.callFake(function myFakeSet() {
console.log("I've been called");
});

关于javascript - 我如何在 Jasmine 中测试回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31045712/

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