簡體   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