>我正在尝试测试对 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();
});
设置状态正在给我警告。
预期已调用模拟函数,但未调用。
您需要在
更改上存根输入 3 个字符。这应该贯穿事件代码并更新状态。
然后,您需要断言代码返回预期的字符。反应测试那里的东西,你也不需要这样做!
请提供您的输入代码和事件处理程序。