我正在尝试测试对useState挂钩的调用,但未调用其说法。 我正在记录他们触发了模拟事件,并调用了我的处理程序,并且触发了处理程序中useState的设置,但是我的间谍由于某种原因无法正常工作。
const setState = jest.fn();
const useStateSpy = jest.spyOn(React, 'useState');
useStateSpy.mockImplementation(init => [init, setState]);
test('input change event with less than 3 characters', async () => {
const wrapper = shallow(
<MyComp {...props} />
);
const event = {
target: { value: 'me' },
};
const input = MyComp.find('input');
input.simulate('change', event);
jest.runAllTimers();
await expect(setState).toHaveBeenCalled();
});
setState给我警告。
预期已调用模拟函数,但未调用。
答案 0 :(得分:0)
您需要使用3个字符将输入的onChange存根。这应该贯穿您的事件代码并更新您的状态。
然后,您需要声明代码以返回预期的字符。在这里进行反应测试,您也不需要这样做!
请提供您的输入代码和事件处理程序。