問題タブ [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.

0 投票する
1 に答える
968 参照

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ですが、困惑しています。これが私がそうあるべきだと私が考え続けていることですが、それを乗り越えることはできません...

誰かが何らかのガイダンスを持っていれば、非常に感謝しています! ありがとうございました!

0 投票する
1 に答える
558 参照

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 つの方法を示していますが、どちらも問題ないということですか? それらは同等ですか?または何?