首页 > 解决方案 > 如何在 Angular 单元测试中使用 auditTime() 测试 Observable

问题描述

我在这样的组件中有一个可观察的:

this.obs$ = this.someService.getMessage().pipe(auditTime(100),tap(do something))

和这样的测试用例:

mockService = jasmine.createSpyObj("SomeService", [
        "getMessage",
    ]);

mockService.getMessage.and.returnValue(of([]));

it("should get a value from service", fakeAsync(() => {
        let a;
        fixture.detectChanges();
        component.obs$.subscribe((b) => {
                   a=b; 
                  console.log(b)
        });
        tick(100);
        expect(a).toEqual(expectedValue);
    }

该服务将返回一个 subject$.asObservable();

但是,控制台中没有打印任何值,并且测试将失败,因为变量 a 未定义

如何使用 auditTime 测试 observable?

标签: angulartypescriptrxjsjasmine

解决方案


推荐阅读