如何检查使用本机元素的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
...
如何检查测试中是否发生了错误?我不想使用量角器访问浏览器日志。但是其他一些库或解决方案也会很有趣。
我知道我可以添加对本机元素的期望,但是现在这不是我的目标。
这可以通过:
let isErrors = false;
console.error = function () {
isErrors = true;
}
let button = fixture.debugElement.nativeElement.querySelector('button');
button.click();
expect(isErrors).toBe(false);