Проблема при тестировании DateTimePickerModal с помощью библиотеки тестирования Jest & React Native
Я пытаюсь написать модульные тесты для React Native Modal DateTime Picker, используя Jest и React Native Testing Library. Я прошел 3 (как мне кажется) стандартных реквизита RN:
accessible: true,
accessibilityLabel: testLabel,
testID: testLabel,
Вот мои тесты:
fireEvent(dobField, 'handleCalendarPress');
const calendarPicker = wrapper.getByTestId('BDD--ThirdPartyComp--DateTimePickerModal');
fireEvent(calendarPicker, 'onConfirm', ageOver18);
В dobField
это мое настраиваемое поле ввода, которое я создал, и когда оно "нажато", я могу найти модальное окно testID
что я добавил. Однако это третье условие, запускающее событиеonConfirm
, Я получаю эту ошибку:
Error: Uncaught [TypeError: this._picker.current.setNativeProps is not a function]
Я читал документы RN (ссылка) по "прямым манипуляциям", в которых говорится о настройке / использованииnative props
. Однако похоже, что это должно быть реализовано в самом модальном файле / lib, а не с моей стороны?
Итак, мои вопросы:
- Есть ли у кого-нибудь опыт написания тестов для этого стороннего компонента?
- Есть ли у кого-нибудь дополнительная информация о том, что означает TypeError?
- Есть ли лучший способ написать модульные тесты для этого модального окна?
- Есть ли какие-то элементы / элементы, которые мне не хватает для правильного взаимодействия с компонентом через Jest?
1 ответ
Я использую react-native-datepicker
и получить то же самое this._picker.setNativeProps is not a function
ошибка. Я исправил с издевательствомDatePickerIOS
, поскольку react-native-datepicker
использует DatePickerIOS
для выбора даты iOS.
jest.mock('react-native/Libraries/Components/DatePicker/DatePickerIOS.ios.js', () => {
const React = require('React');
return class MockPicker extends React.Component {
render() {
return React.createElement('DatePicker', {date: '21.07.2020'});
}
};
});