【发布时间】:2020-06-04 19:38:51
【问题描述】:
我正在尝试编写一个测试,以测试我的按钮何时被单击,handleClick 函数将被调用,但我在测试的断言中一直收到错误消息。 这是 React 组件:
function Profile() {
const [name, setName] = useState({
firstName: '',
lastName: ''
});
const [names, setNames] = useState([]);
const handleClick = (e) => {
e.preventDefault();
names.push(name);
}
return (
<form >
<input
type = "text"
value = {name.firstName}
onChange = {
e => setName({
...name,
firstName: e.target.value
})
}/>
<input
type = "text"
value = {name.lastName}
onChange = {
e => setName({
...name,
lastName: e.target.value
})
}/>
<button onClick = {handleClick} > Add Name < /button> </form>
)
}
export default Profile
这是测试:
it('test 1 - call handleClick spy', () => {
const handleClick = sinon.spy();
let wrapper = shallow(<Profile handleClick={handleClick}/>);
wrapper.find('button').simulate('click',{preventDefault:()=>{}});
expect(handleClick.calledOnce).toBe(true);
});
【问题讨论】:
标签: javascript reactjs unit-testing jestjs enzyme