Я хотел бы в первую очередь проверить, существует ли элемент ввода:
it('verifies that an input element is rendered', () => {
expect(wrapper.exists('input')).toBeTruthy();
});
Затем, проверив это, отдельно проверить, существует ли функция onChange
.Я не из тех, кто поддерживает множественные проверки в одном операторе it
просто потому, что если какой-либо из операторов expect
вызывает сбой, то все нижеприведенные операторы expect
никогда не выполняются.Поэтому я бы использовал отдельный it
следующим образом:
it('verifies that an onChange function is set`, () => {
expect(typeof wrapper.find('input').prop('onChange')).toBe('function');
});
Другой вариант - установить фиктивную функцию для onChange
пропы и убедиться, что она вызывается правильно следующим образом:
const testOnChange = jest.fn();
const wrapper = mount(<App onChange={testOnChange} />);
it('verifies that the onChange function is invoked', () => {
wrapper.find('input').prop('onChange')();
expect(testOnChange.mock.calls).toHaveLength(1);
});