2017-08-08 69 views
0

我想用另一個環境變量。在我的情況下,test。原因是我想爲我的集成測試注入一個http攔截器。這個攔截器應該只返回一個含有預定義數據的模擬響應,僅用於測試。如何在Angular中指定自定義環境變量?

有沒有官方的角度?

所以乾脆我想這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 {} 

回答

1

角CLI有一個命令行參數--environment,可以讓你設置一些類支持你這樣做。

看到這個blog post

This answer提供了很多有關你的問題的信息。

作爲一個側面說明。對於角1.5我已經使用this plugin

+0

我錯過了將'environment.test.ts'文件添加到'angular-cli.json'中的'environments'下。該博客文章的鏈接顯示了更多信息。感謝您的回答 ;-) –

相關問題