Как проверить, привела ли ошибка к тесту Angular с использованием собственных элементов - PullRequest
0 голосов
/ 13 апреля 2020

Как проверить, не привела ли ошибка к тесту Angular с использованием собственных элементов?

Мой тест:

import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { MikeComponent } from './mike.component';

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

   beforeEach(async(() => {
   TestBed.configureTestingModule({
      declarations: [MikeComponent]
   })
     .compileComponents();
 }));

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

 it('press the button', () => {
   let button = fixture.debugElement.nativeElement.querySelector('button');
   button.click();
 });
});

Когда я запускаю тест, он проходит успешно, но находится в сообщении журнала, как это:

...
ERROR: 'ERROR', TypeError: Cannot read property 'startsWith' of undefined
TypeError: Cannot read property 'startsWith' of undefined
...

Как я могу проверить в тесте, что произошла ошибка? Я не хочу использовать транспортир для доступа к журналу браузера. Но какая-то другая библиотека или решение было бы интересно.

Я знаю, что могу добавить ожидания для нативных элементов, но теперь это не моя цель.

1 Ответ

0 голосов
/ 13 апреля 2020

Это можно сделать с помощью:

  let isErrors = false;

  console.error = function () {
    isErrors = true;
  }

  let button = fixture.debugElement.nativeElement.querySelector('button');
  button.click();

  expect(isErrors).toBe(false);
...