Estoy probando algunas pruebas unitarias, creé un sandbox con un ejemplo falso https://codesandbox.io/s/wizardly-hooks-32w6l (en realidad tengo un formulario)
class App extends React.Component {
constructor(props) {
super(props);
this.state = { number: 0 };
}
handleSubmit = (number1, number2) => {
this.setState({ number: this.handleMultiply(number1, number2) })
}
handleMultiply = (number1, number2) => {
return number1 * number2
}
render() {
const { number } = this.state;
return (
<div className="App">
<form onSubmit={e => this.handleSubmit(3, 7)}>
<input type="submit" name="Submit" value="Multiply" />
</form>
<Table number={number} />
</div>
);
}
}
export default App;
Entonces, mi idea inicial era tratar de probar la función de multiplicación. E hice esto, que obviamente no funciona
import App from "../src/App";
test("Multiply", function() {
const expected = 21;
const result = App.handleMultiply(3, 7);
expect(result).toBe(expected);
});
yo obtengo
_App.default.handleMultiply no es una función
¿Es correcto mi enfoque? En caso afirmativo, ¿cómo pruebo las funciones? De lo contrario, ¿debería probar desde el punto de vista del usuario en lugar de las funciones internas (esto es lo que leo)? ¿Debo probar la salida en la pantalla (no creo que esto sea razonable)?