AngularJS UI-Router: Test ui-sref

7

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:

%Vor%

Wie teste ich, wenn der Status auf someState umgeschaltet wird? Es wäre einfach, wenn $state in meinem Controller wie folgt verwendet:

%Vor%

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?

    
23tux 26.08.2014, 09:37
quelle

3 Antworten

18

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:

%Vor%

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:

%Vor%     
23tux 26.08.2014, 10:25
quelle
0

Sie können verwenden:

%Vor%

Hoffe, das hilft

    
Cétia 26.08.2014 09:43
quelle
0

Ich denke, Sie müssen $ rootScope. $ apply () verwenden, um den Status ändern zu lassen.

    
firebait 11.02.2016 02:25
quelle