无法在点击事件的jQuery中使用Jasmine监视函数

时间:2016-09-22 20:45:28

标签: javascript jquery jasmine karma-jasmine

以下是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已被调用。”

我尝试了不同的变体,但不确定我哪里出错。请帮忙!

0 个答案:

没有答案