Bazı birim testleri deniyorum, sahte bir örnekle bir sanal alan oluşturdum https://codesandbox.io/s/wizardly-hooks-32w6l (gerçekte bir formum var)
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;
Benim ilk fikrim çarpma fonksiyonunu test etmeye çalışmaktı. Ve bunu yaptı, tabii ki işe yaramıyor
import App from "../src/App";
test("Multiply", function() {
const expected = 21;
const result = App.handleMultiply(3, 7);
expect(result).toBe(expected);
});
alırım
_App.default.handleMultiply bir işlev değil
Yaklaşımım doğru mu? Evet ise, fonksiyonları nasıl test edebilirim? Aksi takdirde, dahili işlevler yerine bir kullanıcı açısından test etmeliyim (okuduğum budur)? Ekrandaki çıktıları test etmeli miyim (bunun makul olduğunu düşünmüyorum)?