在anode.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将被执行,并且会命中我的后端和数据库,如何模拟该函数,以便我的测试可以独立运行?
答案 0 :(得分:0)
您实际上需要模拟user
对象。我没有完整的上下文,但您可能有类似const User = require('../user.js')
的名称。因此,只要开玩笑,您就可以这样做
jest.mock('../user.js')
jest.mock还接受一个回调,您可以在其中添加自己的实现,但我更喜欢使用单独的 mocks 文件夹,在其中可以保留自己的模拟实现,因为它可能会使测试成为现实。有点混乱。
您可以在调用jest.mock然后在here处检查mock implementation的用法。