[英]How do I return mocks within a mock function in jest?
我正在嘗試模擬axios.create()
函數,該函數以較少的方法返回axios的實例。 我想通過使用每個方法返回一個對象來模擬此create()
方法,但是我也希望使用jest.fn()
模擬這些方法,因此我嘗試了類似的方法
axiosInst = {
get: jest.fn(),
post: jest.fn(),
...
}
axios.create = jest.fn(() => axiosInst)
但是,當我運行測試代碼時,它無法正常工作,但出現此TypeError: Cannot read property post of undefined
在我的代碼中, axiosInst.post()
,因此出於某種原因, axios.create()
返回的是undefined
,這絕對沒有意義。
我也困惑,我到底如何設置mockReturnValue
上axiosInst
。 在運行測試之前,在實例上為方法設置返回值的確切語法是什么?
嘗試像下面這樣模擬任何模擬函數的返回值:
axios.create = jest.fn().mockReturnValue({
get: jest.fn(),
set: jest.fn()
});
此外,您還可以設置一個解決的承諾作為回報價值get
這里,因為我們可能需要在測試案例,測試成功/失敗的情況,如下圖所示:
const mockPromise = new Promise(resolve => resolve(
{ /** some mock data here */ })
);
axios.create = jest.fn().mockReturnValue({
get: mockPromise,
set: jest.fn()
});
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.