2017-06-19 1 views
0

Ich habe in meiner Angular-Anwendung ein Pseudo-Backend implementiert. Dieses Schein-Backend wird in den End-to-End-Tests verwendet.Kann kein Angular MockBackend mit Produktionsaufbau importieren

Ich benutze eine Fabrik, um entweder einen tatsächlichen http-Backend-Dienst oder den Mock-Back-End-Dienst zu erstellen. Im Grunde prüft es, ob es sich um einen Produktions-Build handelt, und wenn dies der Fall ist, gibt es einen http-Backend-Service und ansonsten einen Mock-Backend-Service zurück.

diese Fabrik Funktion vereinfacht wie folgt aussieht:

import { 
    RequestMethod, 
    Http, 
    XHRBackend, 
    BaseRequestOptions, 
    RequestOptions, 
    Response, 
    ResponseOptions 
} from "@angular/http"; 

import { MockBackend, MockConnection } from "@angular/http/testing"; 

function backendFactory(mockBackend: MockBackend, 
     options: BaseRequestOptions, 
     realBackend: XHRBackend) { 
    if(!useMockBackend) { 
     console.log("Configuring real HTTP backend..."); 
     return new Http(realBackend, options); 
    } 

    console.log("Configuring mock HTTP backend..."); 

    // Listen to incoming requests and send mock data 

    return new Http(mockBackend, options); 
} 

Wenn ich diesen Code ausführen in einer Produktions Build ich die folgende Fehlermeldung erhalten: Uncaught Error: Cannot find module "@angular/http/testing/src/mock_backend"

Ich vermute Angular werden einige Module in ein entfernen Produktionsaufbau, um die Web-/App-Größe zu verringern. Ich konnte jedoch keine weiteren Informationen zu diesem Prozess finden. Weiß jemand, ob das deaktiviert werden kann?

Umwelt:

  • Angular 4.0.0
  • Ionic 2.2.2
  • Lubuntu 14.04
  • Node 6.9.0
+0

Da der Fehler sagt, ist mockbackend kein Modul und kann daher nicht in dem Import-Bereich sein. Sie können ein Mockbackend im Providerteil bereitstellen. Obwohl ich nicht 100% klar bin, was du hier zu tun versuchst. – PeterS

Antwort

Verwandte Themen