问题描述
我正在使用angular2进行组件测试。我的html模板中的
使用转换管道。
这是测试的代码:
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, TestBed ,getTestBed} from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
import { RightComponent } from './right.component';
import {TranslateService} from 'ng2-translate/ng2-translate';
import {Injector} from "@angular/core";
let comp: RightComponent;
let fixture: ComponentFixture<RightComponent>;
let el: DebugElement;
let translate: TranslateService;
let injector: Injector;
describe('testComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [ RightComponent ]
});
injector = getTestBed();
translate = injector.get(TranslateService);
fixture = TestBed.createComponent(RightComponent);
comp = fixture.componentInstance; // BannerComponent test instance
// get title DebugElement by element name
el = fixture.debugElement.query(By.css('h2'));
});
it('should display original title', () => {
fixture.detectChanges(); // trigger data binding
expect(el.nativeElement.textContent).toContain('Liste des droits');
});
});
我在没有翻译管道的情况下遇到此错误:
i got this error the the translate pipe is not known :
Error: Template parse errors:
The pipe 'translate' could not be found ("<h2>[ERROR ->]{{'RIGHT_TITLE' | translate}}</h2>
<div class="table-responsive">
<table id="rightTableId" clas"): RightComponent@0:4
The pipe 'translate' could not be found ("
<table id="rightTableId" class="table table-striped">
<tr>
<th>[ERROR ->]{{'NAME_LABEL' | translate}}</th>
</tr>
<tr *ngFor="let right of rights">
"): RightComponent@4:16
The pipe 'translate' could not be found ("
</tr>
<tr *ngFor="let right of rights">
<td>[ERROR ->]{{right.name | translate}}</td>
</tr>
</table>
我们如何解决此问题?
谢谢。
推荐答案
您需要使用库模块配置 TestBed
,就像使用实际应用程序配置库一样。然后查看,它显示了通过导入模块
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()
]
因此,您应该在 TestBed
配置中执行相同的操作
So you should do the same in the TestBed
configuration
TestBed.configureTestingModule({
declarations: [ RightComponent ],
imports: [TranslateModule.forRoot()]
});
这是 TestBed.configureTestingModule
的含义用于:为测试环境配置模块。
This is what the TestBed.configureTestingModule
is for: to configure a module for the test environment.
这篇关于找不到管道“翻译”,angular2组件测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!