以下是foo.js
var analytics = {};
analytics.myLinks = function(){
return 2;
};
analytics.myView = function() {
analytics.myLinks();
};
$('#marquee').on('click', analytics.myView);
以下是我的spec文件foo.spec.js使用jasmine-fixture实用程序的词缀助手附加了Fixture。 (https://github.com/searls/jasmine-fixture)
(function() {
describe('click event handlers', function() {
it('calls function when #marquee is clicked on', function() {
affix('#marquee');
spyOn(analytics, 'myView').and.callThrough();
$('#marquee').trigger('click');
expect(analytics.myView).toHaveBeenCalled();
});
it('calls inner function when #marquee is clicked on', function() {
affix('#marquee');
spyOn(analytics, 'myLinks').and.callThrough();
$('#marquee').trigger('click');
expect(analytics.myLinks).toHaveBeenCalled();
});
});
}).call(this);
我使用Karma作为我的测试运行器,它在上述单元测试中引发错误 “预期间谍myView已被调用。” 和 “预期间谍myLinks已被调用。”
我尝试了不同的变体,但不确定我哪里出错。请帮忙!