【发布时间】:2018-08-16 18:31:56
【问题描述】:
如果是静态测试,我可以获取该值,但每当我尝试获取转换后的值(使用 ngx-translate)时,它都是空的。
<div id="header-title">
<h1>{{ 'MENU_TITLE' | translate | uppercase }}</h1>
</div>
这可行并返回Test
<div id="header-title">
<h1>Test</h1>
</div>
spec.ts
it('should translate a string using the key value', () => {
fixture = TestBed.createComponent(NavComponent);
const title = fixture.nativeElement;
console.log(title.querySelector('#header-title h1').innerHTML);
});
导入翻译模块
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
}),
HttpClientModule
],
declarations: [NavComponent]
}).compileComponents();
injector = getTestBed();
translate = injector.get(TranslateService);
}));
-----FIXED----- 但不确定这是否是正确的做法
let fixture: ComponentFixture<NavComponent>;
it('should translate a string using the key value', () => {
fixture.detectChanges() // fixture = TestBed.createComponent(NavComponent);
const title = fixture.nativeElement;
console.log(title.querySelector('#header-title h1').innerHTML);
});
【问题讨论】:
-
添加完整示例!
标签: angular unit-testing typescript karma-jasmine ngx-translate