angular - 如何让测试用例覆盖管道内的语句(map... using jest

标签 angular jestjs

我正在使用 Angular 。
Component code

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

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

我写了如下 Jest 测试用例,但它没有涵盖管道内的语句
  spyOn(httpClient, 'post').and
    .returnValue(new Observable( observer => {
    observer.next([]);
  }));

最佳答案

代码覆盖率在测试方面没有任何意义。它只是表明引擎读取了这部分代码。

但是如果你想覆盖它,你将不得不测试你的流的最终结果。

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

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

关于angular - 如何让测试用例覆盖管道内的语句(map... using jest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55017638/

相关文章:

angular - “npm update”命令无法更新 Angular2 中的依赖项

javascript - Angular 2 中推荐的服务架构

reactjs - 使用 enzyme/jest 关闭后,reactstrap 模态中的内容继续存在

javascript - 如何从 Jest Watch 中排除文件?

javascript - Jest 相当于 Mocha 的根级钩子(Hook)是什么?

javascript - 为什么 Jest 尝试运行我的整个应用程序而不是导入的模块?

unit-testing - 我如何 Jest 模拟react-native-ibeacon

html - 我如何在 Angular 中使用不同的样式表来支持不同的屏幕尺寸?

asynchronous - Angular 2 - 使用异步 http 请求进行插值和绑定(bind)

angular - 如何在指令和组件中获取元素的宽度/高度?