我在测试我的某个组件时遇到了一些麻烦。测试情况如下:Angular2/Jasmine期望为null使浏览器崩溃
describe('SmpEventsNewCompactEventComponent',() => {
const specService: SmpSpecService = new SmpSpecService();
describe('Component rendering',() => {
let componentInstance: any;
let componentFixture: ComponentFixture<any>;
let cssSelector: string;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
MaterialModule.forRoot()
],
declarations: [
SmpEventsCompactEventComponent,
SmpEventsAddressComponent
],
providers: [
{ provide: SMP_OT_HELPER, useValue: newOtHelperInstance() },
DatePipe,
SmpEventTypeCheckerService,
SmpLangService
]
});
componentFixture = TestBed.createComponent(SmpEventsCompactEventComponent);
componentInstance = componentFixture.componentInstance;
});
describe('Global',() => {
it('GIVEN there are date/time AND address ' +
'WHEN component loads THEN display event',() => {
//// TEST ONE
componentInstance.isEventEnabled = true;
cssSelector = '.events-compact-event';
let debugElement = specService.queryDebugElement(
componentFixture, cssSelector);
expect(debugElement).not.toBeNull();
});
it('GIVEN there are no date/time AND no address ' +
'WHEN component loads THEN do not display event',() => {
//// TEST TWO
componentInstance.isEventEnabled = true;
//componentInstance.isAddressEnabled = false;
// componentInstance.isDateEnabled = false;
cssSelector = '.events-compact-event';
let debugElement = specService.queryDebugElement(
componentFixture, cssSelector);
console.log('--------------', debugElement.nativeElement);
// expect(debugElement.nativeElement).toBe(null);
// expect(true).toBe(true);
expect(debugElement).not.toBeNull();
});
});
});
的specService.queryDebugElement情况如下:
queryDebugElement(fixture: ComponentFixture<any>, cssSelector: string): DebugElement {
fixture.detectChanges();
return fixture.debugElement.query(By.css(cssSelector));
}
每当我使用
expect(true).toBe(true);
或
expect(debugElement.nativeElement).toBe(null);
或
expect(debugElement).not.toBeNull();
在测试两个
,测试工作或常失败,但每当我使用
expect(debugElement).toBeNull();
业力的碰撞所使用的浏览器(铬/铬/ PhantomJs测试),并没有给出任何线索怎么了。这不是一个简单的“期望错误为真”失败,测试上下文完全崩溃。
您是否看到任何可以解释此行为的东西?
好了THX,会做:) – Shireilia
但你知道如何如果debugElement被定义,它会崩溃吗?因为如果带有debugElement的元素被破坏,而不是浏览器崩溃,我至少会期望一个错误日志或其他东西。 – Shireilia
我认为你的除了(debugElement)是抛出错误.. – saurav1405