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