我在測試我的某個組件時遇到了一些麻煩。測試情況如下: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