Angular testing async pipe does not trigger the observable

Discussão em 'Angular' iniciado por ng2user, Dezembro 20, 2024.

  1. ng2user

    ng2user Guest

    I want to test a component that uses the async pipe. This is my code:

    @Component({
    selector: 'test',
    template: `
    <div>{{ number | async }}</div>
    `
    })
    class AsyncComponent {
    number = Observable.interval(1000).take(3)
    }

    fdescribe('Async Compnent', () => {
    let component : AsyncComponent;
    let fixture : ComponentFixture<AsyncComponent>;

    beforeEach(
    async(() => {
    TestBed.configureTestingModule({
    declarations: [ AsyncComponent ]
    }).compileComponents();
    })
    );

    beforeEach(() => {
    fixture = TestBed.createComponent(AsyncComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
    });


    it('should emit values', fakeAsync(() => {

    tick(1000);
    fixture.detectChanges();
    expect(fixture.debugElement.query(By.css('div')).nativeElement.innerHTML).toBe('0');

    });


    But the test failed. It's seems Angular does not execute to Observable from some reason. What I am missing?

    When I'm trying to log the observable with the do operator, I don't see any output in the browser console.

    Continue reading...

Compartilhe esta Página