我正在使用 Jest 測驗一些 API 端點,但這些端點有時可能會失敗,因為網路問題而不是我的程式錯誤。所以我想延遲多次(例如 5 次)再次進行測驗,如果所有這些嘗試都失敗了,Jest 應該報告失敗。
實作這一目標的最佳方法是什么?Jest 或其他庫是否提供解決方案?還是我應該用類似的東西撰寫自己的程式setInterval?
uj5u.com熱心網友回復:
對于測驗,您最好不要進行網路呼叫,因為它們會減慢您的測驗速度。此外,您可能正在與理想情況下不應成為測驗代碼的一部分的外部 API 進行通信。也可能導致您已經觀察到的假陰性。您可以執行以下操作:
async function getFirstMovieTitle() {
const response = await axios.get('https://dummyMovieApi/movies');
return response.data[0].title;
}
為了測驗上述網路呼叫,您應該在測驗中模擬您的 axios get 請求。要測驗上面的代碼,你應該
jest.mock('axios');
it('returns the title of the first movie', async () => {
axios.get.mockResolvedValue({
data: [
{
title: 'First Movie'
},
{
title: 'Second Movie'
}
]
});
const title = await getFirstMovieTitle();
expect(title).toEqual('First Movie');
});
嘗試閱讀更多關于嘲笑的內容以更好地理解
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466451.html
標籤:javascript 单元测试 测试 开玩笑的
