使用 mockResolvedValueOnce 和 async/await 时抛出 tslint 警告

幻灯片p2

我嘲笑了request-promise模块,除了 tslint 抱怨警告外,一切都很好。

这是我的单元测试:

import * as request from 'request-promise';

jest.mock('request-promise', () => {
  return {
    __esModule: true,
    get: jest.fn(),
  };
});

describe('csv.service.ts', () => {
  it('should mock request-promise module correctly', () => {
    expect(jest.isMockFunction(request.get)).toBeTruthy();
  });
  it('should mock get method correctly', async () => {
    (request.get as jest.Mock).mockResolvedValueOnce('go?');
    const actualValue = await request.get('1');
    expect(actualValue).toBe('go?');
  });
});

在非承诺的情况下重构这个多余的“等待”。(no-invalid-await)tslint(1)

这似乎request.get('1')是不把作为执行后承诺mockResolvedValueOncerequest.get

更新

如果我删除async/await,第二个单元测试将失败。

 FAIL  src/tests/services/core/csv.service.spec.ts
  csv.service.ts
    ✓ should mock request-promise module correctly (5ms)
    ✕ should mock get method correctly (9ms)

  ● csv.service.ts › should mock get method correctly

    expect(received).toBe(expected) // Object.is equality

    Expected: "go?"
    Received: {}

    Difference:

      Comparing two different types of values. Expected string but received object.

      17 | 
      18 |     const actualValue = request.get('1');
    > 19 |     expect(actualValue).toBe('go?');
         |                         ^
      20 |   });
      21 | });
      22 | 

      at Object.it (src/tests/services/core/csv.service.spec.ts:19:25)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 passed, 2 total
Snapshots:   0 total
Time:        1.203s, estimated 2s
幻灯片p2

我使用类型转换来解决这个问题。因为我确定request.get('1')Promise在执行之后mockResolvedValueOnce

const actualValue = await (request.get('1') as PromiseLike<string>);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 tslint 中使用 npm 警告?

来自分类常见问题

自动修复TSLint警告

来自分类Dev

使用ElementList长度和[]时的Dart2js警告

来自分类Dev

使用QThread时发生类型转换和QThreadStorage警告?

来自分类Dev

使用ElementList长度和[]时的Dart2js警告

来自分类Dev

使用QThread时发生类型转换和QThreadStorage警告?

来自分类Dev

“使用警告”之间有区别吗?和“使用警告'全部';”?

来自分类Dev

“使用警告”之间有区别吗?和“使用警告'全部';”?

来自分类Dev

WebPack 在主页上显示 tslint 警告

来自分类Dev

使用gksu时的gtk警告

来自分类Dev

使用Microsoft身份和构建解决方案时警告CS1702

来自分类Dev

使用Symfony2和Twig时警告“无法重新初始化DataTable”

来自分类Dev

使用utf8时不会输出Perl警告,严格和诊断错误

来自分类Dev

使用array_filter时出现意外的PHP通知和警告

来自分类Dev

使用Pandoc和LaTeX从docx转换为pdf时,如何解决“字符丢失”警告?

来自分类Dev

使用动态组件和自定义事件时的VueJS警告

来自分类Dev

使用Microsoft身份和构建解决方案时警告CS1702

来自分类Dev

使用consolehelper时出现“权限不足”和“ userhelper必须为setuid root”错误/警告

来自分类Dev

使用Symfony2和Twig时警告“无法重新初始化DataTable”

来自分类Dev

使用array_filter时出现意外的PHP通知和警告

来自分类Dev

尝试使用函数调用 sql 查询时的警告消息和注意事项

来自分类Dev

使用Pylint显示错误和警告

来自分类Dev

使用指针和NSError指针获取警告

来自分类Dev

iOS:使用NSString和对象循环警告

来自分类Dev

TSLint和VSCode问题:未使用所有已分解元素

来自分类Dev

使用具有功能的 asyncawait 模块

来自分类Dev

警告:setlocale:LC_ALL:使用Cloud9和Openshift时无法更改语言环境(C.UTF-8)

来自分类Dev

警告:使用jfrog和android-maven-plugin时,将忽略org.apache.httpcomponents:httpclient:4.2.1依赖项

来自分类Dev

修复使用TypeScript时Document <any>和ctx.renderPage =()引发的next.js _document.tsx中的ESLint警告

Related 相关文章

  1. 1

    如何在 tslint 中使用 npm 警告?

  2. 2

    自动修复TSLint警告

  3. 3

    使用ElementList长度和[]时的Dart2js警告

  4. 4

    使用QThread时发生类型转换和QThreadStorage警告?

  5. 5

    使用ElementList长度和[]时的Dart2js警告

  6. 6

    使用QThread时发生类型转换和QThreadStorage警告?

  7. 7

    “使用警告”之间有区别吗?和“使用警告'全部';”?

  8. 8

    “使用警告”之间有区别吗?和“使用警告'全部';”?

  9. 9

    WebPack 在主页上显示 tslint 警告

  10. 10

    使用gksu时的gtk警告

  11. 11

    使用Microsoft身份和构建解决方案时警告CS1702

  12. 12

    使用Symfony2和Twig时警告“无法重新初始化DataTable”

  13. 13

    使用utf8时不会输出Perl警告,严格和诊断错误

  14. 14

    使用array_filter时出现意外的PHP通知和警告

  15. 15

    使用Pandoc和LaTeX从docx转换为pdf时,如何解决“字符丢失”警告?

  16. 16

    使用动态组件和自定义事件时的VueJS警告

  17. 17

    使用Microsoft身份和构建解决方案时警告CS1702

  18. 18

    使用consolehelper时出现“权限不足”和“ userhelper必须为setuid root”错误/警告

  19. 19

    使用Symfony2和Twig时警告“无法重新初始化DataTable”

  20. 20

    使用array_filter时出现意外的PHP通知和警告

  21. 21

    尝试使用函数调用 sql 查询时的警告消息和注意事项

  22. 22

    使用Pylint显示错误和警告

  23. 23

    使用指针和NSError指针获取警告

  24. 24

    iOS:使用NSString和对象循环警告

  25. 25

    TSLint和VSCode问题:未使用所有已分解元素

  26. 26

    使用具有功能的 asyncawait 模块

  27. 27

    警告:setlocale:LC_ALL:使用Cloud9和Openshift时无法更改语言环境(C.UTF-8)

  28. 28

    警告:使用jfrog和android-maven-plugin时,将忽略org.apache.httpcomponents:httpclient:4.2.1依赖项

  29. 29

    修复使用TypeScript时Document <any>和ctx.renderPage =()引发的next.js _document.tsx中的ESLint警告

热门标签

归档