2013-07-29 18 views
7

Ho definito un evento personalizzato. Voglio spiarlo con il gelsomino. Ma il problema che ho è che sta fallendo quando sto usando spyOn per spiare quell'evento. Quando spio su alcune funzioni funziona correttamente. Heres che cosa ho provato:Come spiare un evento personalizzato in gelsomino?

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

Così ho provato sia not.toHaveBeenCalled() e toHaveBeenCalled() ma fallisce in entrambi i casi. Quindi immagino che lo spyOn non sia in grado di spiare l'evento personalizzato.

* Nota: * Ho guardato altre risposte SO con una domanda simile, ma era qualcosa a che fare con un evento click. Ma nel mio caso si tratta di un evento personalizzato che verrà licenziato in base ad alcune condizioni automaticamente.

risposta

4

Prova qualcosa del genere. Ha funzionato per me

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

}); 
Problemi correlati