如何解决如何出于测试目的调用组件的onClick道具?
我正在使用Jest和Enzyme测试一些React组件(使用TypeScript编写)。我以前的方法是使用酶的.simulate()
函数来模拟点击,但是不建议使用实例支持功能(即仅使用组件的onClick()
支持)。但是,我不确定如何直接调用onClick()
函数。下面是我的代码:
// Get the onClick function
const buttonOnClick = wrapper.find('#diffpicker-button').first().props().onClick;
// buttonOnClick could be a function or undefined,make sure its a function
if (!buttonOnClick) return;
// Assignment needed here,but to what?
let event: React.MouseEvent<Element,MouseEvent>;
// How to call it?
buttonOnClick(event);
我需要分配事件变量以传递给buttonOnClick()
,但是应该将其分配给什么呢? onClick事件实际上是什么样的?还是我要把这全部弄错?
解决方法
您可以尝试将React引用分配给组件,并在GLMMadaptive
上调用click()
,以便单击组件,并使用所有正确的参数调用ref.current
处理程序正确的地方:)。像这样:
onClick
您当然需要将ref分配给button元素,就像这样(Hooks):
const clickButton = buttonRef => {
buttonRef.current.click();
}
,
您可以使用如下所示的模拟事件定义直接调用onClick
:
// arrange
const event = {
preventDefault: jest.fn(),};
// act
wrapper.find("MobileLink").last().props().onClick(event);
// assert
.
.
.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。