【发布时间】:2021-11-05 07:11:01
【问题描述】:
我有以下代码:
<ReturnToLastSearch
href={'/listings'}
onClick={(e): void => {
e.preventDefault();
router.back();
}}
/>
ReturnToLastSearch({ href, onClick }: Props)里面有以下内容:
<a className="button" onClick={!onClick ? urlOnClick : onClick}>
一切正常,除了 jest 抱怨我的差异,它添加了 onClick 属性并且三元的测试覆盖率不足!
我试过了:
it('when onClick is defined uses onClick', () => {
const call = ()=> ({back: jest.fn()});
jest.mock('next/router', call)
const { getByText } = render(<ReturnToLastSearch href="foo" onClick={call}/>);
getByText(i18n.t('favorites.returnToLastSearch') as string).click();
expect(router.back).toHaveBeenCalledWith('/listings')
});
我试过上面的,除了router.back()的expect和mock之外,和没有onClick的版本一样。但是,我收到一条错误消息,告诉我jest.mock() 中的第二个参数应该是内联函数。
什么样的测试才有意义,并且还能说服我不要管我?
谢谢
【问题讨论】:
标签: javascript reactjs unit-testing jestjs next.js