我目前正在使用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()似乎对我不起作用。
答案 0 :(得分:2)
事实证明,在我尝试为其提供常规//Layout
//....more code
Hello @session["LastName"]
道具的同时,我的<InputText/>
组件采用了onChangeFunc
道具。一旦我意识到这一点并为其提供了正确的支撑,它便解决了该问题。