繁体   English   中英

使用 jest mock 隔离运行异步函数

[英]use jest mock to run async function in isolation

在 node.jest 中异步等待 jest 模拟 http 请求

I can write my test like so
it('works with async/await', async () => {
  expect.assertions(1);
  const data = await user.getUserName(4);
  expect(data).toEqual('Mark');
});

但是 getUserName 将被执行并且它会访问我的后端和数据库,如何模拟该函数以便我的测试可以独立运行?

您需要实际模拟user对象。 我没有完整的上下文,但您可能有类似const User = require('../user.js') 所以开玩笑,你可以通过这样做来嘲笑这个

jest.mock('../user.js')

jest.mock 也接受一个回调,您可以在其中添加您自己的实现,但我更喜欢有一个单独的mocks文件夹,您可以在其中保留自己的 mock 实现,因为它可能会使测试更加混乱。

你可以检查它的使用在这里,你叫jest.mock然后模拟实现

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM