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();
});
nicht funktioniert .. Err- Uncaughted Expected Spy Mouseover wurde aufgerufen. – Visha
ok .. Vielen Dank für den Vorschlag :) – Visha
Gern geschehen :) –