首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监视Jasmine-Jquery函数调用

监视Jasmine-Jquery函数调用
EN

Stack Overflow用户
提问于 2015-04-23 06:09:54
回答 1查看 399关注 0票数 0

下面的jasmine-jquery代码片段失败。我得到的错误是“预期spy logIt已被调用”。

代码语言:javascript
复制
var logIt = function () { 
    console.log("logged"); 
};

$('#id1').on({
    click: logIt
});

describe("Clicking id1", function() {
  it("logs to the console.", function() {
      spyOn(window, 'logIt');
      $('#id1').click();
      expect(window.logIt).toHaveBeenCalled();
  });
});

//ERROR: "Expected spy logIt to have been called."
EN

回答 1

Stack Overflow用户

发布于 2015-04-23 16:12:26

试试这个:

代码语言:javascript
复制
describe("Clicking id1", function() {
    var logIt, $button;

    beforeAll(function () {
        logIt = jasmine.createSpy('logIt() spy');

        $button = $('#id1');
        $button.click(logIt);
        $button.click();
    });

    it("logs to the console.", function () {
        expect(logIt).toHaveBeenCalled();
    });
});

我在我的项目中运行了下面的测试,它起作用了:

代码语言:javascript
复制
describe("Clicking id1", function() {
    var $button, specHelper, logIt;

    beforeAll(function () {
        logIt = jasmine.createSpy('logIt() spy');
        $button = $('<button>').attr("id", "id1");
        specHelper = new SpecHelper();
        specHelper.publish($button);

        $button.click(logIt);
        $button.click();
    });

    afterAll(function () {
        specHelper.conceal($button);
    });

    it("logs to the console.", function () {
        console.dir(logIt);
        expect(logIt).toHaveBeenCalled();
    });
});

specHelper.publish将jQuery节点附加到DOM,然后specHelper.conceal将其删除。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29809837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档