2017-10-26 5 views
1

私は角の単位テストを書き始めています。文字通り、すべてのコンポーネント(および一部のサービス)でngx-translateを使用しているので、グローバルなテストレベルでインポートして提供する方法があるかどうか尋ねたいと思っていました。角4+ - テストのためにグローバルにモジュールをインポートする

これまでのところ、私はあることを意図していますが、あなたグローバルテストレベルでそれを提供することができて、これ

export function createTranslateLoader(http: HttpClient) { 
    return new TranslateHttpLoader(http, './assets/i18n/', '.json'); 
} 

describe('AppComponent',() => { 
    beforeEach(async(() => { 
     TestBed.configureTestingModule({ 
      imports: [ 
       HttpClientModule, 
       TranslateModule.forRoot({ 
        loader: { 
         provide: TranslateLoader, 
         useFactory: (createTranslateLoader), 
         deps: [HttpClient] 
        } 
       }), 
      ], 
      declarations: [ 
       AppComponent 
      ] 
     }).compileComponents(); 
    })); 
} 

答えて

1

などの各.specファイルにNGX-変換モジュールとHTTP-ローダーをインポートしましたモジュールごとに単位でが提供されているので、ユニットテストの精神に従ってください。

構成に応じて、あなたがそのモジュールでサービスを提供する場合、あなたはappInjectorとあなたのTestBedをブートストラップconfiguration-test.module.tsは、彼らがすべてのdescribe()のテストのために提供されますしている必要がありますが、あなたはまだあなたのコンポーネントに手動でそれらを注入する必要があります。

関連する問題