我正在尝试编写 Jasmine 规范来验证在将模型添加到视图的集合时是否调用了视图的函数。
在视图的初始化函数中我做
this.collection.on('add', this.fooAdded, this);
在我的茉莉花规格中,我正在做:
describe('Foo View', function() {
it('should call fooAdded when a Foo is added', function() {
var view = new FooView({collection: new FooCollection()});
spyOn(view, 'fooAdded').andCallThrough();
view.delegateEvents();
view.collection.add({name: 'foo'});
expect(view.fooAdded).toHaveBeenCalled();
});
});
我的 fooAdded() 实现将一些内容记录到控制台,所以我知道它正在被调用。然而,间谍没有看到 fooAdded() 已被调用。
见我的jsFiddle