角度测试依赖模块

时间:2017-12-12 10:41:58

标签: angular unit-testing angular-test

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

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

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

这似乎不对,我不想从模块中测试任何东西。

如何在所有测试中继续导入此模块?

1 个答案:

答案 0 :(得分:0)

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

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

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

  @Input()
  ngbTooltip: string;

  constructor() { }

}