我正在使用最新的 create-react-app
并且能够为普通的 React 组件运行测试用例。
现在查看一些更复杂的组件,这些组件具有调用 customHook 来渲染组件的几个部分。所以想模拟那些自定义钩子,例如如下
jest.mock('../hooks/useMe', () => ({
__esModule: true,
default: () => ({
data: {
role: 'MondraAdmin',
},
}),
}));
jest.mock('../hooks/useCertificate');
test('Render ApprovalRequestCertCard', () => {
render(
<ApprovalRequestCertCard
readOnly={true}
cert={cert}
companyId=""
onUpdate={update}
/>
);
expect(screen.getByText('Impacts under review')).toHaveClass(
'font-medium text-lg'
);
});
..hooks/__mocks__
const useCertificate = jest.fn(() => ({
inProgress: false,
cancelApproval: jest.fn().mockName('cancelApproval'),
approve: jest.fn().mockName('approve'),
reject: jest.fn().mockName('reject'),
revoke: jest.fn().mockName('revoke'),
sendStartDate: jest.fn().mockName('sendStartDate'),
cancel: jest.fn().mockName('cancel'),
unrevoke: jest.fn().mockName('unrevoke'),
editCertification: jest.fn().mockName('editCertification'),
}));
export default useCertificate;