Я видел множество примеров тестирования имитирующей или дочерней опоры как функции в компонентах класса реакции, я пытаюсь протестировать что-то подобное для функциональных компонентов. Похоже, дочерний onClick не запускается.
my-component.jsx
const myComponent = () => {
const [val, setVal] = useState(0);
const clickedVal = () => {
setVal(prev => prev + 1);
};
return (
<Paper variant="outlined">
<IconButton onClick={() => clickedVal()}>
<MaterialUIIcon/>
</IconButton>
<Child val={val}/>
</Paper>
)
}
Я пробовал ниже,
my-component.test.jsx
it("test", () => {
wrapper = shallow(<MyComponent/>);
const child = wrapper.find(Child);
const iconButton = wrapper.find(IconButton)
console.log(`beforeClick ${child.prop("val")}`);
iconButton.simulate("click")
console.log(`afterClick ${child.prop("val")}`);
Я вообще не вижу изменения значения, я тоже пробовал следующее iconButton.prop("onClick)();
iconButton.props().onClick();
Кажется, ничего не работает, я вижу значение beforeClick afterClick как 0. Есть ли другой способ вызвать дочернюю опору функция в функциональных компонентах?