2013-07-29 19 views
7

Tôi có một sự kiện tùy chỉnh được xác định. Tôi muốn theo dõi nó bằng hoa nhài. Nhưng vấn đề tôi có là nó không thành công khi tôi đang sử dụng spyOn để theo dõi sự kiện đó. Khi tôi theo dõi một số chức năng, nó hoạt động tốt. Heres những gì tôi đã cố gắng:Làm cách nào để theo dõi sự kiện tùy chỉnh trong hoa nhài?

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(); 
    }); 
}); 

Vì vậy, tôi đã cố gắng cả not.toHaveBeenCalled()toHaveBeenCalled() nhưng nó không thành công trong cả hai trường hợp. Vì vậy, tôi đoán spyOn không thể theo dõi sự kiện tùy chỉnh.

* Lưu ý: * Tôi đã xem các câu trả lời khác của SO bằng một câu hỏi tương tự, nhưng đó là điều cần làm với sự kiện nhấp chuột. Nhưng trong trường hợp của tôi, đó là sự kiện tùy chỉnh sẽ được kích hoạt dựa trên một số điều kiện tự động.

Trả lời

4

Hãy thử một cái gì đó như thế này. Đã làm việc cho tôi

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

});