如何监视茉莉花中的自定义事件?

时间:2013-07-29 06:07:47

标签: javascript testing jasmine

我定义了自定义事件。我想用茉莉花来监视它。但我遇到的问题是,当我使用spyOn监视该事件时,它失败了。当我监视一些功能时它工作正常。这是我试过的:

describe("Test:", function(){
    it("Expects event will be spied: ", function() {
        var eventSpy = spyOn(window, 'myEvent').andCallThrough();
        expect(eventSpy).toHaveBeenCalled();
        //Also tried this:
        //expect(eventSpy).not.toHaveBeenCalled();
    });
});

所以我尝试了not.toHaveBeenCalled()toHaveBeenCalled(),但两种情况都失败了。所以我猜spyOn无法监视自定义事件。

* 注意:* 我用类似的问题查看了其他SO答案,但这与点击事件有关。但在我的情况下,这是一个自动触发基于某些条件的自定义事件。

1 个答案:

答案 0 :(得分:4)

尝试这样的事情。为我工作

describe("Test:", function(){
it("Expects event will be spied: ", function() {
    var eventSpy = jasmine.createSpy();
    sampleElement.addEventListener('sample event', eventSpy);
    expect(eventSpy).toHaveBeenCalled();

});