【问题标题】:jest - mockReturnValue : Promise<boolean>笑话 - mockReturnValue : Promise<boolean>
【发布时间】:2020-04-09 18:31:19
【问题描述】:
我是新手,我想模拟一个返回 Promise<boolean>. 的函数
我这样做了:
service.changeBookingAsync = jest.fn().mockReturnValue(boolean);
但我收到了这个错误:
错误 TS2693: 'boolean' 仅指一种类型,但被用作
这里的值。
【问题讨论】:
标签:
javascript
node.js
typescript
jestjs
【解决方案1】:
如果你想模拟一个 Promise,你必须使用这个:
jest.fn().mockImplementation(() => Promise.resolve(value));
【解决方案2】:
同意@Max 的回答
语法糖函数将是这样的:
jest.fn().mockResolvedValue(value);
【解决方案3】:
还有另一种方法可以模拟返回 Promise 的函数。
service.changeBookingAsync = jest.fn().mockReturnValue(Promise.resolve(true));
这相当于
jest.fn().mockResolvedValue(true);
而mockFn.mockResolvedValue(true) 是一个语法糖函数:
jest.fn().mockImplementation(() => Promise.resolve(true));
您可以从 Jest 的官方文档中了解更多关于 mockResolvedValue() 的信息。