Testing promise in Angular 2 ngOnInit

后端 未结 3 1707
不思量自难忘°
不思量自难忘° 2020-12-01 21:19

I have an Angular 2 component I am trying to put under test, but I am having trouble because the data is set in the ngOnInit function, so is not immediately ava

3条回答
  •  天涯浪人
    2020-12-01 21:34

    I had the same issue, here is how I managed to fix it. I had to use fakeAsync and tick.

    fakeAsync(
          inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
            tcb
            .overrideProviders(UsersComponent, [
              { provide: UserService, useClass: MockUserService }
            ])
            .createAsync(UsersComponent)
            .then(fixture => {
              fixture.autoDetectChanges(true);
              let component = fixture.componentInstance;
              component.ngOnInit();
              flushMicrotasks();
              let element = fixture.nativeElement;
              let items = element.querySelectorAll('li');
              console.log(items);
            });
          })
        )
    

提交回复
热议问题