我定义了自定义事件。我想用茉莉花来监视它。但我遇到的问题是,当我使用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答案,但这与点击事件有关。但在我的情况下,这是一个自动触发基于某些条件的自定义事件。
答案 0 :(得分:4)
尝试这样的事情。为我工作
describe("Test:", function(){
it("Expects event will be spied: ", function() {
var eventSpy = jasmine.createSpy();
sampleElement.addEventListener('sample event', eventSpy);
expect(eventSpy).toHaveBeenCalled();
});