gpt4 book ai didi

angular - 找不到管道 'translate',angular2 组件测试

转载 作者:太空狗 更新时间:2023-10-29 17:00:52 25 4
gpt4 key购买 nike

我正在使用 angular2 进行组件测试。 在我的 html 模板中,我使用了翻译管道。 这是测试代码:

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');
});

});

我收到此错误,因为翻译管道未知:

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>

我们如何解决这个问题?

谢谢。

最佳答案

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

您需要使用库模块配置TestBed,就像您使用实际应用程序配置库一样。看着 documentation , 它显示通过导入模块配置它

imports: [
TranslateModule.forRoot()
]

所以你应该在 TestBed 配置中做同样的事情

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

这就是 TestBed.configureTestingModule 的用途:为测试环境配置模块。

关于angular - 找不到管道 'translate',angular2 组件测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39597952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com