У меня есть компонент foo. Я хочу смоделировать нажатие кнопки с помощью фиктивной функции
export default class Foo extends Component {
btnClick() {
console.log("hello...");
}
render() {
return (
<div>
<h2>Hello</h2>
<button onClick={this.btnClick.bind(this)} id="btn">Click</button>
</div>
);
}
}
Мой тестовый код выглядит следующим образом
it("must call the mock method with button click", () => {
const wrapper = mount(<Foo />);
wrapper.instance().btnClick = jest.fn(() => {
return 8;
});
wrapper.update();
const btn = wrapper.find("#btn");
btn.simulate("click");
expect(wrapper.instance().btnClick).toHaveBeenCalled();
})
Моделирование события нажатия вызывает компоненты реального методавместо вызова имитирующего метода.
Я знаю, что это можно сделать, передавая фиктивную функцию как реквизит компоненту <Foo/>
.
Я хочу знать, есть ли другой способ имитировать щелчок (, т. Е. Частный для компонента ) с помощью метода mock.