Я пытаюсь протестировать компонент React Native, который по сути является оберткой для Switch .
Это выглядит так (стили и дополнительный код удалены):
render() {
return (
<View>
<View>
<View>
<Switch
onValueChange={() => this.onChange(!this.state.value)}
value={this.state.value}
/>
</View>
</View>
</View>
);
}
Этот компонент не имеет самого метода onChange
, но класс, который он расширяет, имеет.Я хочу убедиться, что когда я нажимаю на этот переключатель, onChange
вызывается с правильным значением (т. Е. С true
или false
).
Мой тест выглядит следующим образом (я добавилподдельный onChange
метод для упрощения проверки действия прессы):
it('calls onChange with proper values when pressed', () => {
const onChangeHandler = jest.fn();
const wrapper = shallow(
<Toggle />
);
wrapper.instance().onChange = onChangeHandler;
wrapper.simulate('press');
expect(wrapper.instance().onChange).toBeCalledWith(true);
});
Однако этот тест не пройден, и onChange
не вызывается.Я не уверен, где ошибка в моем тесте.