Wie um zu testen, auf zerstören Rahmen
Wie unit-testing, ein $destroy-Ereignis einer Direktive in angularjs?
Ich habe den code in meiner Richtlinie:
scope.$on('$destroy', function () {
//clean something
});
Mein test-code:
it('on destroy',function(){
scope.$destroy();
scope.$digest();
//expect everything done?
});
Jede Anregung!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie den DOM, die von der Vorlage Ihres Richtlinie und Holen Sie sich den Umfang, dann läuft $destroy().
Ex:
Ihre tpl:
Ihrem test:
Hoffe Euch helfen!
Sollten Sie testen, den code, der ausgeführt wird, innerhalb der
$destroy
Veranstaltung. Hier ein erfundenes Beispiel mit einem controller:Test
Controller
Plunker hier.
Eckig ist
isolateScope
ist vorzuziehen, um die Verwendung von jQuery. Wahrscheinlich haben Sie zusammengestellt, das element in eine beforeEach vor Ihrer Prüfung wie folgt:Nun in Ihrem test können Sie den Zugriff auf die
isolateScope
- und call -$destroy
:Hier ist was ich tun:
im Gegensatz zu anderen Antworten, die ich nicht haben, zu erstellen Flagge Variablen, die nur sinnvoll für Tests, die auch, es macht mehr Sinn für mich zu verwenden, Jasmin spyOn und callThrough zu überprüfen, ob die Funktion $destry wird erfolgreich aufgerufen.