Угловое модульное тестирование - не удается найти имя «xyzDirective» - PullRequest
0 голосов
/ 30 мая 2018

У меня есть компонент, который использует загрузчик модулей, и когда я импортирую его в свой файл спецификаций, я не могу проверить конкретную директиву, потому что она не может быть найдена.Я получаю

Cannot find name 'AwesomeHelperDirective'

и вывод Jasmine говорит:

ReferenceError: AwesomeHelperDirective is not defined

Мой модуль выглядит так ...

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import {
  AwesomeComponent,
} from './awesome.component';

@NgModule({
  declarations: [
      AwesomeComponent,
      AwesomeHelperDirective,
  ],
  imports: [CommonModule],
  exports: [
      AwesomeComponent,
      AwesomeHelperDirective,
  ]
})
export class AwesomeModule { }

В моем файле спецификаций у меня есть это:

import { AwesomeModule } from './awesome.module';

describe('AwesomeComponent', () => {

   const html =  `<app-template></app-template>`;

   beforeEach(() => {
      TestBed.configureTestingModule({
        imports: [AwesomeModule],
        declarations: [TestComponent],
      }).overrideComponent(TestComponent, {
          set: {template: html},
        }).compileComponents();
    });

    it('should ...', () => {
      const fixture = TestBed.createComponent(TestComponent);
      fixture.detectChanges();

      const clickMock = spyOn(AwesomeHelperDirective, 'onClick');
      fixture.debugElement.query(By.css('awesome-helper')).triggerEventHandler('click', null);
      expect(clickMock).toHaveBeenCalled();
    });

});
...