与Jest一起测试Onchange事件。任何建议

发布于 2025-02-10 06:58:49 字数 955 浏览 1 评论 0原文

以下代码从渲染方法返回。我将索引值作为0通过道具发送。我还通过道具发送Onchange功能。但是,当我进行NPM运行测试时,Onchange功能不会调用。

受益人

 {props.isEditing ? 

    <Textbox 

       id={`beneficiary-value-${props.index}`}

       onChange={(e) => props.onChange(e)}

       inputType={'number'}

    /> :

    <span className={"percentage"}>{`${props.beneficiary.percentage}%`}</span>

  }

test.js:

test('受益人渲染而不会崩溃',()=&gt; {

let beneficiary =
{
   "name": "Emma Smith",
   "dob": "",
   "relationship": "",
   "percentage": "",
   "hasChanged": false
};
    const onChange = jest.fn();

    const dom = render(

        <BeneficiaryItem beneficiary={beneficiary} index={0} isEditing={true} onChange={(e) => onChange(e)} />

    );

    const beneficiaryValue = dom.container.querySelector("#beneficiary-value-0");

    fireEvent.change(beneficiaryValue);

})

以上是我的测试用例文件。

the below code is returned from render method. I am sending index value as 0 through props. i am also sending onChange function through props. but onchange function is not calling when i do npm run test.

beneficiary.js

 {props.isEditing ? 

    <Textbox 

       id={`beneficiary-value-${props.index}`}

       onChange={(e) => props.onChange(e)}

       inputType={'number'}

    /> :

    <span className={"percentage"}>{`${props.beneficiary.percentage}%`}</span>

  }

.

test.js:

test('Beneficiaries renders without crashing', () => {

let beneficiary =
{
   "name": "Emma Smith",
   "dob": "",
   "relationship": "",
   "percentage": "",
   "hasChanged": false
};
    const onChange = jest.fn();

    const dom = render(

        <BeneficiaryItem beneficiary={beneficiary} index={0} isEditing={true} onChange={(e) => onChange(e)} />

    );

    const beneficiaryValue = dom.container.querySelector("#beneficiary-value-0");

    fireEvent.change(beneficiaryValue);

})

the above is my test case file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

羅雙樹 2025-02-17 06:58:49

更改事件应如下所示,预计将有新价值作为参数:

fireEvent.change(beneficiaryValue, {
  target: { value: "Changed Value" }
});

请参阅React测试库文档以获取更多详细信息。

Change event should be fired as below, it expects new value as an argument:

fireEvent.change(beneficiaryValue, {
  target: { value: "Changed Value" }
});

Please refer to React testing library documentation for more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文