fireEvent在react-testing-library中未正确调用事件

Zac*_*ach 5 reactjs jestjs react-testing-library

我目前正在使用Jestreact-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);
});
Run Code Online (Sandbox Code Playgroud)

这是运行此测试时在终端上获得的东西:

expect(jest.fn()).toHaveBeenCalledTimes(1)

Expected mock function to have been called one time, but it was called zero times.
Run Code Online (Sandbox Code Playgroud)

我在其他测试中使用了fireEvent.click()函数,但没有任何问题,但是fireEvent.change()似乎对我不起作用。

Zac*_*ach 5

事实证明,我的<InputText/>组件接受了一个onChangeFunc道具,而我试图给它一个常规onChange道具。一旦我意识到这一点并给它正确的道具,它就解决了问题。