假設我們有一個名為 useUser 的自定義鉤子
const useUser = (): IUser => useContext(MiniAppContext).user;
然后在另一個組件中使用
import { useUser } from '@ABC'
const { monitoring } = useUser(); // please note that monitoring is an object having property id
當我們運行測驗用例時,它顯示
TypeError: xxxx.useUser is not a function
我使用下面的代碼來通過單元測驗,但我知道這已經足夠好了。請讓我知道對此的最佳做法是什么。提前致謝。
更新:
jest.mock('@ABC', () => ({
userUser: () => ({monitoring: {}} as IUser)
}));
uj5u.com熱心網友回復:
一個想法是創建一個模擬自定義鉤子的 util 函式:
import * as useUserHook from '@ABC';
function generateUseUserHook(mock?: IUser): IUser {
const value: IUser = {
monitoring: jest.fn(),
// mock return value (you can use faker)
...mock
};
jest.spyOn(useUserHook, 'useUser').mockReturnValue(value);
return value;
}
而不是jest.mock.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/428569.html
上一篇:不能將型別與“匯入型別”一起使用
