如何在Angular的构造函数中使用@Inject文本测试组件

时间:2019-05-22 06:40:39

标签: angular unit-testing

角度6,我在组件的构造函数中声明了一些注入的变量,但是当我运行std::unique_ptr时,我不知道如何在单元测试文件中配置注入的值,它给出了以下错误:

  

错误:StaticInjectorError(DynamicTestModule)[title]:
  StaticInjectorError(平台:核心)[标题]:       NullInjectorError:没有标题提供者!

//我的组件

ng test

我想知道是否有人遇到相同的问题以及如何解决错误,请先感谢。

1 个答案:

答案 0 :(得分:0)

日期,数字和字符串之类的值必须包装在Injection Token中。

1 .:创建注射令牌:

export const TITLE = new InjectionToken<string>('title');

2 .:像现在一样注入:

constructor(@Inject(TITLE) private title: string)

3 .:在测试中,使用InjectionToken对其进行模拟:

  TestBed.configureTestingModule({
      declarations: [ DelInterviewerConfirmModalComponent ],
      imports: [ CheckboxModule, TranslateModule ],
      providers: [ 
        { provide: TITLE, useValue: 'modal title' },