2017-08-08 2 views
0

Ich möchte eine andere Umgebungsvariable verwenden. In meinem Fall test. Der Grund ist, dass ich einen HTTP-Interceptor für meine Integrationstests einfügen möchte. Dieser Interceptor sollte nur eine vorgetäuschte Antwort mit vordefinierten Daten zurückgeben und wird nur zum Testen verwendet.Wie benutzerdefinierte Umgebungsvariablen in Angular angeben?

Gibt es einen offiziellen Winkel-Weg?

So einfach will ich diese app.module.ts:

import { environment } from '../environments/environment'; 
    // ... 

    export function CustomHttpProvider (backend: XHRBackend, options: RequestOptions) { 
     return new HttpService(backend, options); 
    } 

    export function FakeHttpProvider (backend: XHRBackend, options: RequestOptions) { 
     return new FakeHttpService(backend, options); 
    } 

    const HttpProvider = environment.test ? FakeHttpProvider : CustomHttpProvider; 

    @NgModule({ 
     imports: [ 
     BrowserModule, 
     HttpModule, 
     BrowserAnimationsModule, 

     // ... my modules + routing here 
     ], 
     declarations: [AppComponent], 
     providers: [ 
     { 
      provide: Http, 
      useFactory: HttpProvider, 
      deps: [XHRBackend, RequestOptions] 
     } 
     ], 
     bootstrap: [AppComponent] 
    }) 
    export class AppModule {} 

Antwort

1

Angular CLI hat einen Parameter --environment Befehlszeile, die Sie dies tun können, wenn Sie einige Klasse eingerichtet, dass zu unterstützen.

Sehen Sie diese blog post

This answer viele Informationen bietet zu Ihrer Frage.

Als eine Randnotiz. Für Winkel 1.5 habe ich this plugin verwendet.

+0

Ich vermisste die 'environment.test.ts' Datei unter' environments' in 'Winkel cli.json' hinzuzufügen. Der Link zum Blogeintrag zeigt mehr Infos dazu. Danke für deine Antwort ;-) –

Verwandte Themen