Пусть у меня есть этот компонент:компонент поведения Тестирование (клик) в React-Native с Jest
import React, { Component } from 'react';
import { Text, TouchableWithoutFeedback, View } from 'react-native';
class MyComp extends Component {
onRowPress() {
this.myCoolFunction();
}
myCoolFunction() {
console.log('hi');
}
render() {
return (
<TouchableWithoutFeedback onPress={this.onRowPress.bind(this)}>
<View>
<Text>Hello World</Text>
</View>
</TouchableWithoutFeedback>
);
}
}
export default MyComp;
Как я могу идти о моделировании 1 клик на «TouchableWithoutFeedback» и убедившись, что «myCoolFunction» был назван ровно 1 раз?
Если это не обязательно, то я бы предпочел не добавлять больше зависимостей, кроме «реагирования» и «реакции-аддоны-тестовые утилиты».
Я видел много руководств, утверждающих это и это, но я боюсь, что они устарели, и я хочу быть уверенным, что я не воспользуюсь некоторыми ненужными обходными решениями и раздуванием моего кода.
У меня есть шутка/реакция/реакция родной в их последних версиях.
Редактировать: В Jest's official documentation говорится, что тесты DOM могут быть выполнены либо с ферментом, либо с TestUtils. Как я могу выполнить это с помощью TestUtils?
Посмотрите на это [Учебник] (https://facebook.github.io/jest/docs/tutorial-react.html) из РЕАКТ страницы. То, что вы должны проверить, - это состояние компонента, как предполагает Facebook, а не при выполнении onClick. Теперь, если то, что вы ожидаете после нажатия кнопки, - это вызов другого компонента, вы должны издеваться над этим компонентом. –
Как вы можете видеть, мой onClick не управляет состоянием. Также это реактивные тесты, поэтому легче получить доступ к DOM. – Tsury