【问题标题】:In Jest, how do I mock a Promise of void?在 Jest 中,我如何模拟一个 Promise of void?
【发布时间】:2021-09-11 22:11:19
【问题描述】:

我正在使用 Jest 和 Typescript。我有一个不返回任何内容(void)的异步函数。我如何模拟返回无效?我尝试了以下

const myMockFn = jest.fn().mockImplementationOnce(() => Promise.resolve(void));
jest.mock('../config', () => ({
  setup: async () =>
  myMockFn(),
}));

但我得到编译错误

Expression expected.

与“Promise.resolve(void)”相关。

【问题讨论】:

  • 应该只是Promise.resolve() 而不是Promise.resolve(void)
  • 尽量避免使用void操作符

标签: typescript promise mocking void ts-jest


【解决方案1】:

void 此处使用的value 位置是javascript 运算符。它是一元运算符,即它接受单个参数。因此错误。

void作为typescript类型应该用在type的位置,表示不会观察到函数返回值。

const myMockFn = jest.fn().mockImplementationOnce(() => Promise.resolve());

这足以模拟具有Promise<void> 返回类型的函数。

【讨论】:

    猜你喜欢
    • 2018-05-07
    • 2019-04-09
    • 2020-07-29
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2019-01-06
    • 1970-01-01
    相关资源
    最近更新 更多