如何测试包含SwitchMap的嵌套服务调用

时间:2019-07-18 21:51:09

标签: angular angular-testing

我在服务组件上嵌套了两个服务调用,并且我正在使用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。

0 个答案:

没有答案