Ich versuche, einige Ansichten zu testen, die <a ui-sref='someState'>link</a>
verwenden, um mit anderen Zuständen in meiner Anwendung zu verknüpfen. In meinen Tests klicke ich auf diese Elemente wie folgt:
Wie teste ich, wenn der Status auf someState
umgeschaltet wird? Es wäre einfach, wenn $state
in meinem Controller wie folgt verwendet:
Aber wenn ich ui-sref
verwende, weiß ich nicht, welches Objekt ich ausspionieren soll. Wie kann ich überprüfen, ob meine Anwendung im richtigen Zustand ist?
Ich habe es selbst gefunden. Nachdem ich in den eckigen ui router Quellcode geschaut habe, habe ich diese Zeile in der ui-sref
Direktive gefunden:
Wenn das Element einen Klick erhält, wird $state.go
in einen $timout
Callback eingeschlossen. In Ihren Tests müssen Sie also das Modul $timeout
injizieren. Dann mach einfach ein $timeout.flush()
wie folgt:
Tags und Links angularjs jasmine angular-ui-router