我正在嘗試測驗使用玩笑呼叫端點的 RTKQuery。
我最終還希望能夠模擬回傳資料的內容,但首先我只想檢查是否呼叫了鉤子。
下面是我試圖監視自動生成的 useGetMyListQuery 鉤子的 myApi 的示例。
這在運行時拋出并出錯,有人可以幫忙嗎?
it('Should render', async () => {
jest.spyOn(myApi, 'useGetMyListQuery')
render(
<Provider store={store}>
<MyComponent />
</Provider>
)
expect(myApi.useGetMyListQuery).toBeCalled()
})
uj5u.com熱心網友回復:
我無法回答你關于如何用玩笑模擬來做到這一點的問題,但我希望我可以在這里給你一些見解 - 從撰寫大部分 RTKQ 的角度以及我如何想象它以穩定的方式進行測驗:
我不會用開玩笑的方式嘲弄。我會嘲笑 API。
這樣做的原因是您的模擬將假設來自 RTKQ 鉤子的某些回傳值 - 如果您的假設是錯誤的,您可能有一個不錯的綠色運行測驗,但實際上您的應用程式仍然會失敗。
這方面的一個例子是使用skip而不檢查isUninitialized- 因為如果您不使用skip,則不會出現這種情況,并且您可能只是假設您只會在組件中看到isLoading,isSuccess和isError情況。在許多情況下,這是一個完全有效的假設,但并非總是如此。模擬 RTKQ 會將由此產生的錯誤隱藏在綠色測驗后面。
相反,我會建議使用類似模擬服務作業者的東西來模擬你的 api 端點并讓 RTKQ 完成它的作業。這就是我們在自己的測驗中測驗 RTKQ 的方式 - 歡迎您查看:RTKQ 測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/385308.html
標籤:javascript 测试 还原 redux-工具包 rtk查询
上一篇:如何在Jest上測驗節點cron
