如何检查使用本机元素的Angular测试是否导致错误

问题描述 投票:0回答:1

如何检查使用本机元素的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
...

如何检查测试中是否发生了错误?我不想使用量角器访问浏览器日志。但是其他一些库或解决方案也会很有趣。

我知道我可以添加对本机元素的期望,但是现在这不是我的目标。

angular unit-testing jasmine karma-jasmine
1个回答
0
投票

这可以通过:

  let isErrors = false;

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

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

  expect(isErrors).toBe(false);
© www.soinside.com 2019 - 2024. All rights reserved.