2017-04-05 3 views
0

RichtlinieWie jquery Funktion innerhalb Winkel Richtlinie in Jasmine

  link(scope, element, attrs, ctrl) {  

      element.mouseover(function() { 
       $(element).tooltip('show'); 
      }); 
      $(element).hover(MuiBootstrap.adjustTooltips); 
     } 

Jasmin Test

 it('should show tooltip on mouseover', function() { 
     var spy = spyOn(element, 'mouseover'); 
     $(element).trigger('mouseover'); 
     expect(spy).toHaveBeenCalled(); 
     }); 

Über Jasmin-Test fehlgeschlagen ist immer Fehler spyon: Uncaught Erwartete Spion Tooltip genannt wurden.

Antwort

0

Es wird nicht funktionieren, da Sie versuchen, auf mouseover Methode auszuspionieren, die nur einmal in der Richtlinie link Funktion aufgerufen wird und Sie Spion auf dieser Methode installieren, nachdem es bereits aufgerufen wurde - sobald Sie Spion installieren ausspioniert Funktion bereits aufgerufen wurde also ist Spion sich dessen nicht bewusst.
Ich schlage vor, nicht zu testen, wenn mouseover selbst aufgerufen wird, aber wenn mouseover Rückruf aufgerufen wird, wenn Ereignis ausgelöst wird - was Sie tatsächlich tun, weil Sie auf tooltip Methode ausspionieren (Ihre Fehlermeldung schlägt vor, dass Sie Tooltip-Methode ausspionieren). Also entferne diesen Test einfach, da er pickelig ist. Ich nehme an, Sie möchten testen, ob mouseover Callback aufgerufen wurde, nicht wenn mouseover Methode aufgerufen wurde - diese beiden sind nicht das Gleiche.

Antwort Update: Mouseover Rückruf Um zu testen Sie diesen Rückruf auf Richtlinie Umfang definieren:

link(scope, element, attrs, ctrl) {  
    scope.mouseoverCallback = function() { 
     $(element).tooltip('show'); 
    }; 
    element.mouseover(scope.mouseoverCallback); 
} 

und dann installieren Spion direkt darauf:

it('should call mouseover callback', function() { 
    var yourDirectiveScope = element.scope(); 
    var spy = spyOn(yourDirectiveScope, 'mouseoverCallback').and.callThrough(); 
    element.triggerHandler('mouseover'); 
    expect(yourDirectiveScope.mouseoverCallback).toHaveBeenCalled(); 
}); 
+0

nicht funktioniert .. Err- Uncaughted Expected Spy Mouseover wurde aufgerufen. – Visha

+0

ok .. Vielen Dank für den Vorschlag :) – Visha

+0

Gern geschehen :) –

Verwandte Themen