2017-04-19 2 views
1

Ich versuche den removeEventListener mit Jasmin zu testen. Ich habeJasmine test removeEventListener

describe('test', function(){ 
    'use strict'; 

    beforeEach(function() { 
     affix('#test'); 

     method = { 
      test: function() { 
       console.log('hi!'); 
      } 
     } 

     spyOn(method, 'test'); 

     $selectedElement = $('#test'); 
     selectedElement = $selectedElement[0]; 
    }); 

    it('should remove event listener', function(){ 

     selectedElement.addEventListener('click', method.test); 
     selectedElement.removeEventListener('click', method.test); 
     $selectedElement.click(); 

     expect(methods.showLove).not.toHaveBeenCalled(); 

    }); 
}); 

Aber dies nicht gelingt. Ich nehme an, das liegt daran, dass ich hier eine anonyme Funktion habe. Gibt es eine Möglichkeit, dies zu beheben, ohne nicht anonyme Funktion zu verwenden?

Wenn ich setzen

function clickMe() { 
    return 'bla'; 
} 

und Verwendung, die anstelle von method.test in den Ereignis-Listener der Test erfolgreich ist. Wie benutzt man die in den Methoden definierten Funktionen?

Gibt es eine Möglichkeit, einen Verweis auf diese anonyme Funktion innerhalb des Objekts hinzuzufügen oder zu übergeben?

Antwort

0

Es stellt sich heraus, dass jQuery-Trigger-Ereignis nicht funktionierte, wie es sollte, so dass ich das eine auf der trigger events page auf MDN verwendet.

Dies hat den Trick ...

Verwandte Themen