Тестирование изолированной функции компонента в React Jest - PullRequest
0 голосов
/ 26 сентября 2018

Я довольно новичок в Jest и Enzyme, и я наткнулся на проблему:

У меня есть Компонент, который отображает Children, а также вызывает метод этих потомков.Я достигаю этого с помощью ссылок.Я называю эти функции чем-то вроде:

somefunction = () => {
   this.myReference.current.childFunction();
   this.doSomethingOther();
}    

Теперь я хочу проверить функцию somefunction .Я хочу проверить, была ли вызвана функция doSomethingOther .Используя неглубокий рендер, я не могу этого достичь.Проверка прошла бы успешно, если бы this.myReference.current.childFunction(); не вызывали.Шут не может знать это, потому что он только делает мелкий и поэтому выдает ошибку.

Возможно, мне не хватает полного понимания.Интересно, есть ли у кого-нибудь идея протестировать эту функцию без использования mount.

1 Ответ

0 голосов
/ 26 сентября 2018

Посмотрите на приведенный ниже код, где я поверхностно отрисовываю компонент, а затем получаю экземпляр класса и макетирую необходимые функции.Теперь, когда мы вызываем somefunction , мы проверяем, был ли вызван doSomethingOther .(Предположим, вы используете Jest + энзим)

const wrapper = shallow(<Comp />);
const inst = wrapper.instance();
inst.myReference = {
    current: {
        childFunction: jest.fn()
    }
}
inst.doSomethingOther = jest.fn();
inst.somefunction();
expect(inst.doSomethingOther).toHaveBeenCalled();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...