Тестирование компонента Angular из библиотеки завершается неудачно с помощью: TypeError: Невозможно прочитать свойство 'getComponentFromError' с нулевым значением - PullRequest
0 голосов
/ 28 июня 2019

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

Тесты в моем приложении работают нормально, но когда я пытаюсь протестировать свои компоненты в моей библиотеке компонентов пользовательского интерфейса, оно всегда заканчивается с этой ошибкой:

 FAIL  libs/ui-components/src/lib/white-label-header/white-label-header.component.spec.ts
  ● WhiteLabelHeaderComponent › should create



       7 |   let fixture: ComponentFixture<WhiteLabelHeaderComponent>;
       8 |
    >  9 |   beforeEach(async(() => {
         |   ^
      10 |     TestBed.resetTestEnvironment();
      11 |     TestBed.initTestEnvironment(
      12 |       BrowserDynamicTestingModule,

      at Env.beforeEach (../../node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:41:24)
      at Suite.Object.<anonymous>.describe (src/lib/white-label-header/white-label-header.component.spec.ts:9:3)
      at Object.<anonymous> (src/lib/white-label-header/white-label-header.component.spec.ts:5:1)

  ● WhiteLabelHeaderComponent › should create

    TypeError: Cannot read property 'getComponentFromError' of null

      at TestBedViewEngine._initIfNeeded (../../../../packages/core/testing/src/test_bed.ts:378:46)
      at TestBedViewEngine.createComponent (../../../../packages/core/testing/src/test_bed.ts:570:10)
      at Function.TestBedViewEngine.createComponent (../../../../packages/core/testing/src/test_bed.ts:232:36)
      at Object.beforeEach (src/lib/white-label-header/white-label-header.component.spec.ts:22:23)

  ● WhiteLabelHeaderComponent › should create

    expect(received).toBeTruthy()

    Received: undefined

      26 |
      27 |   it('should create', () => {
    > 28 |     expect(component).toBeTruthy();
         |                       ^
      29 |   });
      30 | });
      31 |

      at Object.it (src/lib/white-label-header/white-label-header.component.spec.ts:28:23)

Я пытался добавить это в своем beforeEach:

    TestBed.resetTestEnvironment();
    TestBed.initTestEnvironment(
      BrowserDynamicTestingModule,
      platformBrowserDynamicTesting()
    );

Но безуспешно.

Вот мой файл спецификаций: white-label-header.component.spec.ts

import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
import { WhiteLabelHeaderComponent } from './white-label-header.component';

describe('WhiteLabelHeaderComponent', () => {
  let component: WhiteLabelHeaderComponent;
  let fixture: ComponentFixture<WhiteLabelHeaderComponent>;

  beforeEach(async(() => {
    TestBed.resetTestEnvironment();
    TestBed.initTestEnvironment(
      BrowserDynamicTestingModule,
      platformBrowserDynamicTesting()
    );

    TestBed.configureTestingModule({
      declarations: [WhiteLabelHeaderComponent],
    }).compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(WhiteLabelHeaderComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

Все остальные связанные файлы являются просто пустыми угловыми компонентами.Я просто хочу скомпилировать тест, вот и все.

Кто-нибудь имеет представление о том, что я делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...