In Ihren Tests erstellen Sie Ihr verzögertes Objekt mit der Funktion fake CompanyService.initialized
. Diese Funktion wird jedoch nur aufgerufen, wenn Sie $scope.index();
aufrufen, was nach Ihrer deferred.resolve();
-Zeile ausgeführt wird. Folgendes sollte funktionieren:
Aktualisieren
Jasmine unterstützt das Ausspionieren von Eigenschaften, die keine Funktionen sind, nicht. Dein Spy-Setup ist also ungültig, da CompanyService.initialized
ein Objekt und keine Funktion ist, also funktioniert dein andCallFake
nicht. Ein Workaround ist die Einführung einer Getter-Funktion in CompanyService
z. B.:
Und dann in Ihrem Controller verwenden Sie stattdessen diese Getter-Funktion:
%Vor%Und schließlich aktualisieren Sie Ihre Test-Code-Initialisierung:
%Vor%Tags und Links javascript angularjs unit-testing promise