問題タブ [react-test-renderer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - preventDefault を使用した React / Unit Test (Jest) クリック メソッド
だから私は困惑している小さな問題を抱えています...
特定の条件が満たされた場合、小道具Link
を介して特定のルートに移動するコンポーネントがあります。to
その条件が満たされない場合、そのリンクをクリックすると、別のことが行われます (私の場合はカスタム モーダルを起動します)。
コンポーネントのonClick
ハンドラーにバインドされたクラスメソッドがありますLink
私の問題は単体テストです。リンクをクリックするための単体テストcondition
がありますfalse
私が迷子になっているのは、反対側をテストすることです- が の場合condition
、その後、ロジックを呼び出したり実行したりするtrue
必要はありません。発砲preventDefault
するのに何も必要ありません。handleClick
唯一のロジックは、 falsehandleClick
の場合です。condition
Link
コンポーネントをクリックしたときにルートに移動するロジックcondition
は問題ありませんtrue
。
preventDefault
呼び出されていないことをテストする必要があり、それinstance.state.showModal
は になる予定true
ですが、困惑しています。これが私がそうあるべきだと私が考え続けていることですが、それを乗り越えることはできません...
誰かが何らかのガイダンスを持っていれば、非常に感謝しています! ありがとうございました!
javascript - テストを破棄するときに unmountComponentAtNode または document.body.removeChild を使用しますか?
このドキュメントから: https://reactjs.org/docs/hooks-faq.html#how-to-test-components-that-use-hooks
ドキュメントは、次のようにテストをセットアップおよび破棄する方法を提供します。
このドキュメントから: https://reactjs.org/docs/testing-recipes.html#setup--teardown
このようなセットアップとティアダウンの方法:
テストを破棄する最良の方法はどれですか?
unmountComponentAtNode
+dom.remove()
またはdocument.body.removeChild
?
アップデート
これらの 2 つの公式ドキュメントは、テストを分解するときにこれら 2 つの方法を示していますが、どちらも問題ないということですか? それらは同等ですか?または何?