Я ищу способ проверить, правильно ли обновлено мое состояние в компоненте хуков.Компонент представляет собой простое выпадающее меню, которое открывается и закрывается при нажатии.
Я испробовал несколько различных способов монтажа компонента в моем тесте и использования функций шутки.Однако я не смог найти способ проверить, обновляет ли состояние.
У меня есть компонент Dropdown
с функцией handleClick
:
const Dropdown = props => {
const classes = useStyles();
const [open, setOpen] = React.useState(false);
const handleClick = () => {
setOpen(prev => !prev);
};
У меня есть кнопкав div
, который при нажатии переключит состояние моего хука:
<div>
<Button
className="classes.menuButton"
onClick={handleClick}
aria-label="menu"
>
<FontAwesomeIcon icon={faChevronDown} />
</Button>
</div
Мой модульный тест пытается смонтировать компонент, смоделировать щелчок, а затем оценить состояние.
it('clicking button toggles open', () => {
let results;
function HookWrapper(){
results = Dropdown();
return null;
};
mount(<HookWrapper />)
// console.log(results.state)
wrapper.find('button').simulate('click');
// console.log(wrapper.find('button').debug())
expect(results.open).toEqual(true)
})
Я получаю сообщение об ошибке, сообщающее, что results.open не определен.Есть ли способ получить доступ к состоянию перехватчиков?Мне также интересно, было бы лучше превратить это в тест снимка.Сделайте снимок после нажатия кнопки и сравните.
Любая помощь будет оценена.