Estoy usando enzimas para probar mis componentes de reacción. Tengo un componente sin estado que tiene una función interna. ¿Cómo puedo llamar y probar esa función interna?
Aquí está mi componente:
const Btn = (props) => { const types = ['link', 'plainLink', 'primary', 'secondary', 'danger', 'info']; const handleClick = (event) => { event.preventDefault(); props.onClick(event); }; return ( <button onClick={handleClick} className={classes}> <span>{props.children}</span> </button> ); };Intenté lo siguiente, pero aparece un error que dice: TypeError: undefined no es un constructor
const btnComp = shallow(<Btn />); btnComp.instance().handleClick();Por lo general, pruebo esta funcionalidad configurando un sinon.spy para el evento:
const click = sinon.spy(); const btnComp = shallow(<Btn onClick={click} />); btnComp.find('button').simulate('click'); expect(click.called).to.equal(true); Ahora, sabe que la función interna sí invocó el evento props.onClick , que es la parte más importante de su trabajo.