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

时间:2018-09-11 16:49:37

标签: 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);
});

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

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

Expected mock function to have been called one time, but it was called zero times.

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

1 个答案:

答案 0 :(得分:2)

事实证明,在我尝试为其提供常规//Layout //....more code Hello @session["LastName"] 道具的同时,我的<InputText/>组件采用了onChangeFunc道具。一旦我意识到这一点并为其提供了正确的支撑,它便解决了该问题。