Estoy tratando de escribir una prueba simple con React y Jest.
Componente:
import React from "react"; class Task extends React.Component { render() { let onDelete = this.props.onDelete; return ( <li> <div className="collapsible-header"><i className="material-icons" onClick={() => onDelete(this.props.taskId)}>delete</i>{this.props.title}</div> <div className="collapsible-body"><p>{this.props.description}</p></div> </li> ); } }; Task.propTypes = { title: React.PropTypes.string.isRequired, taskId: React.PropTypes.number.isRequired, onDelete: React.PropTypes.func.isRequired, description: React.PropTypes.string }; Task.defaultProps = { description: '' }; export default Task;Prueba
import React from 'react'; import Task from '../src/components/Task'; import renderer from 'react-test-renderer'; test('Task should require properties', () => { const component = renderer.create( //this will give me React warnings which I would like to assert <Task></Task> ); }); Ahora me gustaría afirmar que title , taskId y onDelete son necesarios para el componente Task . Que recibiré una advertencia de React sobre no especificarlos (o pasar diferentes tipos).
Puede usar un espía para averiguar si se lanzó algún tipo de excepción desde reaccionar. Mucha gente usa una biblioteca llamada Sinon.js. De la documentación "Un espía de prueba es una función que registra argumentos, valor devuelto, el valor de este y la excepción lanzada (si corresponde) para todas sus llamadas".
Hay una gran solución descrita con más detalle aquí: