Тестирование useState в React - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь проверить вызов ловушки useState, но его сообщение не вызвано.Я регистрирую, что они имитируют событие, и происходит запуск моего обработчика, и настройка useState внутри обработчика запускается, но мой шпион по какой-то причине не работает.

const setState = jest.fn();
const useStateSpy = jest.spyOn(React, 'useState');
useStateSpy.mockImplementation(init => [init, setState]);

test('input change event with less than 3 characters', async () => {
  const wrapper = shallow(
    <MyComp {...props} />
  );
  const event = {
    target: { value: 'me' },
  };
  const input = MyComp.find('input');
  input.simulate('change', event);
  jest.runAllTimers();
  await expect(setState).toHaveBeenCalled();
});

setState дает мне предупреждение.

Ожидается, что фиктивная функция была вызвана, но она не была вызвана.

1 Ответ

0 голосов
/ 14 июня 2019

Вам нужно заглушить ввод на 3 символа. Это должно пройти через ваш код события и обновить ваше состояние.

Тогда вам нужно подтвердить, что ваш код возвращает ожидаемые символы. Проведите там испытания, вам тоже не нужно это делать!

Пожалуйста, введите ваш код ввода и обработчик события ..

...