1

我正在成功地对被测组件进行单元测试。我不得不为组件添加更多功能——工具提示和翻译。翻译服务是我的代码,我能够使用翻译服务和模拟翻译服务来测试被测组件。

我遇到的问题是工具提示。这些来自 ng-bootstrap,可以通过在我的 app.module 中导入 NgbModule.forRoot() 来使用。如果不导入此模块,我将无法测试被测组件:

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ComponentUnderTest, TestHostComponent],
      imports: [NgbModule.forRoot()],
      providers: [LocaleService],
    })
      .compileComponents();
  }));

这似乎不对,我不想测试模块中的任何内容。

如何在我的所有测试中导入这个模块?

4

1 回答 1

0

我尝试在测试项目中使用工具提示来复制您的错误,但基本工具提示没有遇到问题。但是,一旦我开始使用 [ngbTooltip],它就会抛出错误,因为它无法识别此绑定。为了解决这个问题,您需要使用模拟指令创建模拟绑定。以下似乎对我有用:

import { Directive, Input } from '@angular/core';

@Directive({
  selector: '[ngbTooltip]'
})
export class MockTooltipDirective {

  @Input()
  ngbTooltip: string;

  constructor() { }

}
于 2017-12-15T12:23:14.640 回答