Тестирование отладки lodash в реактивном функциональном компоненте с использованием Jest / Enzyme - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь проверить, что в конечном итоге вызывается props.onPress, но я получаю "TypeError: debouncePress не является функцией".Есть идеи почему?

import _ from 'lodash';

export const Button = props => {
  const { debounceTime } = props;
  const debouncePress = _.debounce(() => {
    if (props.onPress) props.onPress();
  }, debounceTime, { leading: true, trailing: false });

  const handlePress = () => {
    debouncePress();
  };

  return (
    <TouchableOpacity testID="touchableOpacity" onPress={handlePress}>
      {props.label ?<Text>{props.label}</Text> : props.children}
    </TouchableOpacity>
  );
};

Вот тест до сих пор

it('should call onPress when press event occurs', () => {
    wrapper = shallow(<Button onPress={jest.fn()} />);
    wrapper.find({ testID: 'touchableOpacity' }).simulate('press');
    expect(props.onPress).toHaveBeenCalled();
});

1 Ответ

0 голосов
/ 05 марта 2019

Я не вижу, где вы проходите debouncePress в вашем тесте !!

wrapper = shallow(<Button onPress={jest.fn()} />); // you passing onPress but debouncePress is undefined

const { debounceTime } = props; ожидает, что debounceTime передается как свойство, но не в вашем тесте

...