Wie Service in angularAMD mit Karma / Jasmin verspotten?

8

Ich habe ein Projekt mit AngularAMD / RequireJS / Karma / Jasmine, dass ich die grundlegende Konfiguration habe alle arbeiten, die meisten Komponententests laufen und erfolgreich bestanden.

Ich kann keinen verspotteten Dienst korrekt erhalten, indem ich angle.mock.module oder angularAMD.value () verwendet.

Ich habe:

%Vor%

Weiß jemand, wo ich falsch liege? Jede Hilfe würde sehr geschätzt werden.

    
evil-dr-nick 17.10.2014, 11:37
quelle

2 Antworten

0

Angular ist nicht asynchron, ich denke, es ist kein gutes ideia, beide zu verwenden. Wenn Sie versuchen, eine gute Modularisierungsmethode zu erreichen, okay, aber den RequireJS-Optimierer verwenden, um alles zu erstellen, bevor Sie dies auf Ihren Browser setzen, und über die Tests, können Sie den RequireJS-Optimierer einfach verwenden, um Ihre Module zu erstellen. es wird Sie von "CommonJS-Umgebung sogar in Tests befreien".

    
Victor Queiroz 26.01.2015 13:37
quelle
0

Sieht so aus, als ob es ein Problem mit variablen Bereichen sein würde, Karma ist sehr nervtötend. Ich denke, du solltest deine Mock-Objekte global initialisieren und sie dann in das beforeEach-Objekt einfügen.

Die oberste Zeile meiner Testdateien sieht immer so aus:

var bodyMock, svcMock, foo, bar

Dann setze ich in den voteEach'es die Werte

Bearbeiten: Da bodyMock nur eine Bereichsvariable ist, an dem Punkt, an dem die Tests tatsächlich ausgeführt werden und der Browser nach einem Objekt 'bodyMock' sucht, kann er nichts finden.

    
TVG 23.05.2016 16:40
quelle