我目前正在使用Jest和react-testing-library测试输入。我正在尝试测试 onChange 函数是否会在我的输入字段更改时触发。这是我的代码示例:
const placeHolder = 'first name';
const onChange = jest.fn();
test('<InputText/>', () => {
const {getByPlaceholderText} = render(
<InputText placeholder={placeHolder} onChange={onChange} />
);
const input = getByPlaceholderText(placeHolder);
fireEvent.change(input, {
target: {value: 'pls work'},
});
expect(onChange).toHaveBeenCalledTimes(1);
});
这是我运行此测试时在终端中得到的结果:
expect(jest.fn()).toHaveBeenCalledTimes(1)
Expected mock function to have been called one time, but it was called zero times.
我已经在其他测试中使用了 fireEvent.click() 函数,但没有任何问题,但 fireEvent.change() 似乎对我不起作用。