Winkelmesser addMockModule und $ httpProvider Interceptor

8

Diese Frage ist eine mögliche Lösung für meine andere Frage (wo sie raten, addMockModule vom Winkelmesser zu verwenden): Rufen Sie eine andere API auf, wenn Sie Tests mit dem Winkelmesser durchführen .

Ich habe die folgende Datei: mockedRest.js Dies ist das Modul, das ich dem Winkelmesser hinzufügen möchte. Er sollte alle REST-Aufrufe abfangen und die Adresse ersetzen (api / to apiMock /).

%Vor%

Dann habe ich meinen eigentlichen Test, wo ich das Modul lade.

%Vor%

Der REST-Aufruf verweist jedoch immer noch auf 'api /' anstelle von 'apiMock /' Ich weiß nicht, ob ich noch etwas tun muss, um den Abfangjäger dazu zu bringen, seine Arbeit zu tun. Es ist auch wichtig zu beachten, dass nichts in der Konsole im apiMockModule geloggt ist, als würde es das Modul nicht laden.

Jeder Rat wird geschätzt.

    
emp 17.06.2014, 09:05
quelle

1 Antwort

11

Ich mache zwei kleinere Fehlerbehebungen im Mock-Modul, damit es funktioniert.

  • Das Mock-Modul muss nicht von Ihrer Anwendung abhängen,
  • Die config.url muss durch die transformierte festgelegt werden.

Das aktualisierte mockedRest.js :

%Vor%

Ich habe diesen Code in dieser Umgebung getestet:

  • Winkelmesser 0.24.1
  • eckig 1.2.16
  • ChromeDriver 2.10.267517
  • Google Chrome 35.0.1916.153
  • Mac OS X 10.9.3 x86_64

Sie haben geschrieben:

  

Es wurde nichts in der Konsole im apiMockModule

protokolliert

Es ist normal, dass der Modulcode nicht vom Winkelmesser ausgeführt, sondern an den Browser gesendet wird (mit driver.executeScript ). Also wird der Code vom Browser ausgeführt.

Aber es ist möglich Erhalte die Logs aus dem Browser zum Debuggen:

%Vor%     
gontard 17.06.2014, 12:21
quelle