我成功地对待测组件进行了单元测试。我不得不为组件添加更多功能 - 工具提示和翻译。翻译服务是我的代码,我能够使用翻译服务和模拟翻译服务测试被测组件。
我遇到的问题是工具提示。那些来自ng-bootstrap,可以通过在我的app.module中导入NgbModule.forRoot()来使用。 如果不导入此模块,我无法测试被测组件:
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ComponentUnderTest, TestHostComponent],
imports: [NgbModule.forRoot()],
providers: [LocaleService],
})
.compileComponents();
}));
这似乎不对,我不想从模块中测试任何东西。
如何在所有测试中继续导入此模块?
答案 0 :(得分:0)
我尝试在测试项目中使用工具提示来复制您的错误,但我没有遇到基本工具提示的问题。但是,一旦我开始使用[ngbTooltip],它就会抛出一个错误,因为它没有识别出这种绑定。为了解决这个问题,您需要使用mock指令创建一个模拟绑定。以下似乎对我有用:
import { Directive, Input } from '@angular/core';
@Directive({
selector: '[ngbTooltip]'
})
export class MockTooltipDirective {
@Input()
ngbTooltip: string;
constructor() { }
}