小编K T*_*mas的帖子

带有 .asObservable() 的 Angular 2 单元测试 (TestBed) 服务

我有一个组件可以调用服务来查看是否已从另一个组件宣布订阅。

成分:

this.activateProcessReadySubscription =  this.returnService.processReadySubscriptionAnnouced$.subscribe(
            itemsInCart => {
                this.itemsInCart = itemsInCart;
            });
Run Code Online (Sandbox Code Playgroud)

当我尝试对此进行测试时,出现错误:

类型错误:无法读取未定义的属性“订阅”

规格

it('should call constructor', fakeAsync(() => {
        mockReturnsService.setResponse(0, true);
        tick();
        fixture.detectChanges();
        expect(mockReturnsService.processReadySubscriptionAnnouced$Spy).toHaveBeenCalledTimes(1);
    }));
Run Code Online (Sandbox Code Playgroud)

服务:

    private activateProcessReadySubscriptionSource = new Subject<number>();
    processReadySubscriptionAnnouced$ = this.activateProcessReadySubscriptionSource.asObservable();

    announceProcessReady(itemsInCart: number) {
        this.activateProcessReadySubscriptionSource.next(this.returnCartDataLength);
    }
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何让订阅正确测试。

unit-testing angular2-services angular

6
推荐指数
1
解决办法
1392
查看次数

标签 统计

angular ×1

angular2-services ×1

unit-testing ×1