如何使测试用例覆盖管道(map ...中使用笑话

时间:2019-03-06 07:20:45

标签: angular jestjs

我正在使用角度。

Component code

 httpClient.post(URL, requestBody)
   .pipe(map((result) => {
      serviceCall(result);
 }));

如何在管道内覆盖代码(使用Jest测试用例映射?

我写了如下这样的开玩笑的测试用例,但它没有涵盖管道内的语句

  spyOn(httpClient, 'post').and
    .returnValue(new Observable( observer => {
    observer.next([]);
  }));

1 个答案:

答案 0 :(得分:1)

在测试中,代码覆盖范围没有任何意义。它只是表明引擎读取了这部分代码。

但是,如果您想覆盖它,则必须测试流的最终结果。

spyOn(httpClient, 'post').and.returnValue(of({}));
spyOn(yourService, 'serviceCall').and.returnValue(of({ id: 1 });

myFunction().subscribe(res => expect(res.id).toEqual(1));