The pipe 'translate' could not be found , angular2 component testing

后端 未结 2 677
长情又很酷
长情又很酷 2021-01-07 23:13

I am working on component testing with angular2. in my html template i use the translate pipe. This is the code of the test :

import { ComponentFixture,          


        
相关标签:
2条回答
  • 2021-01-07 23:38

    it's the ng2-translate github.com/ocombe/ng2-translate

    You need to configure the TestBed with the library module just like you would configure the library with your real application. And looking at the documentation, it shows configuring it by importing the module

    imports: [
      TranslateModule.forRoot()
    ]
    

    So you should do the same in the TestBed configuration

    TestBed.configureTestingModule({
      declarations: [ RightComponent ],
      imports: [TranslateModule.forRoot()]
    });
    

    This is what the TestBed.configureTestingModule is for: to configure a module for the test environment.

    0 讨论(0)
  • 2021-01-07 23:40

    With latest Angular 4 compatible ngx-translate you need to implement this directly into the component you want to test:

    import {TranslateHttpLoader} from "@ngx-translate/http-loader";
    import {Http, HttpModule} from "@angular/http";
    import {
        MissingTranslationHandler,
        TranslateLoader,
        TranslateModule,
        TranslateService
    } from "@ngx-translate/core";
    
    ...
    
    export function HttpLoaderFactory(http: Http) {
        return new TranslateHttpLoader(http, "./assets/i18n/", ".json");
    }
    
       ...
    
       imports: [
                    TranslateModule.forRoot({
                        loader: {
                            provide: TranslateLoader,
                            useFactory: HttpLoaderFactory,
                            deps: [Http]
                        }
                    })
                ],
       ...
    
       providers: [
                    TranslateService
       ...
    
    0 讨论(0)
提交回复
热议问题