我在测试 Backbone 模型的触发方法时遇到了一个奇怪的错误。下面是我的代码:
Category = Backbone.Model.extend({
fetchNotes: function() {
this.trigger("notesFetchedEvent");
}
})
describe("Category", function() {
it("should fetch notes", function() {
var category = new Category;
spyOn(category, "trigger");
category.fetchNotes();
expect(category.trigger).wasCalledWith("notesFetchedEvent");
})
})
我得到的错误是“预期的 spy 触发器已通过 ['notesFetchedEvent'] 调用,但被调用为......乱码......”。有谁知道如何解决这一问题?谢谢。
最佳答案
我发现测试事件触发的最佳方法通常是将 spy 注册为事件的监听器之一,而不是直接监视触发方法。这看起来像这样:
describe("Category", function() {
it("should fetch notes", function() {
var category = new Category();
var spy = jasmine.createSpy('event');
category.on('notesFetchedEvent', spy);
category.fetchNotes();
expect(spy).toHaveBeenCalled();
});
});
关于使用 Jasmine 测试 Backbone 模型的触发方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826834/