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.
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".
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.
Tags und Links angularjs karma-jasmine angular-amd