Wie kann ich Events in eckigen testen?
Brauche ich, um zu testen, dass die Ereignisse richtig emittiert oder übertragen, und trigger-Ereignisse manuell.
Was ist der beste Weg, dies zu tun?
InformationsquelleAutor der Frage Kenneth Lynne | 2013-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einfach nur brauchen, um einige Tests auf event feuern und fangen, das ist, wie ich es mache. Dafür, dass ein bestimmtes Ereignis gefeuert wird (
$emit
-ed oder$broadcast
-ed), einen Spion ist der Weg zu gehen. Benötigen Sie einen Verweis auf den Bereich, der ruft die$emit
oder$broadcast
und dann einfach etwas wie das hier tun:Wenn Sie nicht brauchen oder wollen nicht sorgen zu machen über die Argumente, die übergeben werden mit der
$emit
kannst du ein$on
auf die$rootScope
und ein flag setzen, um zu wissen, das Ereignis ausgesendet wurde. So etwas wie dieses:Für die Funktionalität testen, die ausgeführt wird, wenn ein Ereignis abgefangen wird (
$on
), ist es ein wenig leichter. Nur ein$rootScope
von derinject
- Funktion und senden Sie dann das gewünschte Ereignis.Nun, ich Stelle mir das event-handling würde die passiert werden in einer Richtlinie oder einem controller (oder beides) Für die Einstellung der Richtlinie tests, siehe https://github.com/vojtajina/ng-directive-testing. Für die Einrichtung von controller-tests finden Sie unter https://github.com/angular/angular-phonecat/blob/master/test/unit/controllersSpec.js#L27
Hoffe, das hilft.
InformationsquelleAutor der Antwort dnc253
Hier sind die Schritte, die Sie Folgen sollten, um $broadcast event in angular JS
Während inijecting initialisieren der rootScope und Umfang stub wie unten angegeben:
Nach controller angelegt ist, raise event mit rootScope wie unten:
InformationsquelleAutor der Antwort Dilip Nannaware
Nutzten wir diese Syntax für A1
InformationsquelleAutor der Antwort Jnewbie