比较来自世界各地的卖家的域名和 IT 服务价格

我如何测试按钮 onClick, 哪种用途 props.history 为了你的功能 rtl?

我使用测试库 react 我想测试一个按钮 :


<button =="" data-testid="btn" onclick="{//"> props.history.push/`/post/${value}`/} &gt; Search </button>
<input =="" data-testid="input" onchange="{/e/" type="text" value="{value}"/> handle/e.target.value/} />


我测试了他的功能 onClick 通过以下方式 :


test/'Button should navigate the url when enabled', // => {
render/<home></home>/;
const input = screen.getByTestId/'input'/;
const btn = screen.getByTestId/'btn'/;
fireEvent.change/input, { target: { value: '12' } }/;
fireEvent.click/btn/;
}/;


但它给了我一个错误 :


TypeError: Cannot read property 'push' of undefined

19 | <button 20="" data-testid="btn" |=""> 21 | onClick={// =&gt; props.history.push/`/post/${value}`/}
| ^
22 | disabled={!value}
23 | type="submit"
24 | &gt;


申请本身在开始时工作很大 I npm, 但仅在测试时失败 .
如何解决这种推动力来不确定 ?
</button>
已邀请:

小明明

赞同来自:

您必须将道具传达给可视化组件,在这种情况下
<home></home>

:


import history from 'history' // Or a file you made that contains an instance of history

test/'Button should navigate the url when enabled', // => {
render/<home history="{history}" {...otherprops}=""></home>/;
const input = screen.getByTestId/'input'/;
const btn = screen.getByTestId/'btn'/;
fireEvent.change/input, { target: { value: '12' } }/;
fireEvent.click/btn/;
}/;

要回复问题请先登录注册