我有一个函数,就像这样:
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属性或通过假值进行测试?
答案 0 :(得分:0)
是的,您应该使用笑话的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);