reactjs - 如何使用酶测试“事件”?
问题描述
我有一个函数,它是这样的:
posXEvent = (e) => {
e.persist();
const interval = 20;
const diff = this.textInput.offsetWidth / total_interval_count;
let posX = e.pageX - this.textInput.offsetLeft;
//Do something based on posX
};
我有一个组件,onclick,上面的函数被称为<div onClick={this.posXEvent} ref={this.textInput} />
现在我想使用酶为上述功能创建一个测试,但是有没有办法通过'e属性或传递假值来测试?
解决方案
是的,您应该使用 jest 的jest.spyOn(object, methodName)
. 对于对象,传递包装器的实例。对于方法名称,您必须传递类方法的名称。
const wrapper = mount(<MyComponent />);
const eventSpy = jest.spyOn(wrapper.instance(), "posXEvent");
const eventData = { pageX: 3 };
yourElement.simulate('click', eventData);
expect(eventSpy.mock.calls).to.have.length(1);
推荐阅读
- vb.net - vb.net 如何获取文本文件的文件名?
- docker - 启动我的 dockerized laravel 应用程序时出现服务器错误(500)
- swift - xCode Like-button 不会在表格单元格中创建 (EXC_BAD_ACCESS (code=2, address=0x7fff86e8d750))
- javascript - 开玩笑在服务中模拟 mongodb 记录
- javascript - 带有子组件的 Blazor 页面:如何从行 @onclick 方法按钮传递当前 HTML 表格行索引或 Vairable
- python - Using WriteToBigQuery FILE_LOADS in a streaming pipeline just creates a LOT of temporary tables (python SDK)
- ios - 如何检查是否在 iOS 上使用 Flutter 安装了特定应用程序?
- java - 如何从java文件更改可绘制源?
- vim - VimScript:语法高亮插件不高亮
- go - 在 golang 中修改映射值 - 有和没有指针 - 意外行为