首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在jest中,我如何模拟一个导出的函数来返回一个Promise而不是未定义的?

在jest中,你可以使用jest.spyOn()来模拟一个导出的函数,并返回一个Promise而不是未定义的值。

首先,你需要确保你的函数是一个导出函数。假设你有一个名为myFunction的函数需要被模拟,你可以将其导出为一个模块,例如:

代码语言:txt
复制
// myModule.js
export const myFunction = () => {
  // 你的函数逻辑
};

然后,在你的测试文件中,你可以使用jest.spyOn()来模拟这个导出函数,并返回一个Promise。你可以使用mockResolvedValue()方法来指定Promise的返回值。示例如下:

代码语言:txt
复制
import * as myModule from './myModule';

test('测试导出函数返回Promise', async () => {
  const mockPromise = Promise.resolve('模拟的Promise返回值');
  const spy = jest.spyOn(myModule, 'myFunction').mockResolvedValue(mockPromise);

  // 调用被模拟的函数
  const result = await myModule.myFunction();

  // 断言结果
  expect(result).toBe('模拟的Promise返回值');

  // 恢复原始函数
  spy.mockRestore();
});

在上面的示例中,我们使用jest.spyOn()来模拟myFunction函数,并使用mockResolvedValue()方法指定了返回的Promise值。然后,我们可以在测试中调用模拟的函数,并使用await关键字等待Promise的解析结果。最后,我们使用expect()断言结果是否符合预期。

这是一个基本的示例,你可以根据你的具体需求进行调整和扩展。请注意,这里没有提及任何特定的云计算品牌商,你可以根据自己的需求选择合适的云计算平台和相关产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券