首页 > 解决方案 > 如何测试包含 SwitchMap 的嵌套服务调用

问题描述

我有一个嵌套在服务组件上的两个服务调用,并且我正在为它使用 swithcMap。代码类似于下面的代码,它工作得很好,但单元测试不起作用。有人可以建议我在单元测试中做错了什么吗?

myService():Observable<HttpResponse<any>>{
   return this.http.get<string>(this.firstURL)
      .pipe(
          switchMap(res1 =>{
          return this.http.get<any>(res1['val1']['val2']);
         }
      })
}

为了测试上面的代码,我有这样的东西

it('should call http', () => {
   serv.myService().subscribe(res =>
      expect(res.val).toBe(100)
   )

var req = httpMockServ.expectOne('testUrl');
req.flush({val:10});

});

看起来它不是在模拟第二个 http 调用。我无法读取未定义的属性 val2。

标签: angularangular-test

解决方案


推荐阅读