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();
在TEST TWO中,无论何时使用,测试都会正常工作或失败
expect(debugElement).toBeNull();
因业力崩溃使用的浏览器(使用chrome / chromium / PhantomJs测试)并没有提供任何发生的线索.这不是一个简单的“期望错误是真的”失败,测试上下文完全崩溃.
你看到任何可以解释这种行为的东西吗?