ドキュメントはモックストアの使用を提案していますが、すべてのアクションを記録しているだけで、減速機には接続されていません。私は基本的に単なるコンポーネントのテストをユニット化し、アクションがディスパッチされた場合、(最も一般的な記述方法のように)変更されたものを参照してください:単体テストでのユニットテスト
expect(counter.props).to.equal (1)
派遣(増分())
が期待.to.equal(counter.props)(2)
任意のアイデアは?ありがとう
ドキュメントはモックストアの使用を提案していますが、すべてのアクションを記録しているだけで、減速機には接続されていません。私は基本的に単なるコンポーネントのテストをユニット化し、アクションがディスパッチされた場合、(最も一般的な記述方法のように)変更されたものを参照してください:単体テストでのユニットテスト
expect(counter.props).to.equal (1)
派遣(増分())
が期待.to.equal(counter.props)(2)
任意のアイデアは?ありがとう
ここにはいくつかの要素があります。
最初に、通常のレンダリングと使用であっても、アクションをディスパッチしてもコンポーネントの小道具は直ちに更新されません。 connect
によって生成されたラッパーコンポーネントは、アクションがディスパッチされた直後に通知されますが、ラップされたコンポーネントの実際の再レンダリングは一般的にバッチアップされ、Reactによってキューに入れられます。したがって、1行にアクションをディスパッチすることは、次の行のプロンプトに反映されません。
第2に、理想的には、「プレーン」コンポーネントは実際にRedux自体について何も知っていないはずです。それはちょうどそれが小道具としていくつかのデータを取得していることを知って、ボタンクリックのようなイベントが発生すると、それは小道具として与えられたいくつかの機能を呼び出します。したがって、コンポーネントのテストは、Redux関連のテストとは独立している必要があります。
React/Redux links listの一部としてReact and Redux-related testingの記事がたくさんあります。それらの記事のいくつかはあなたにいくつかのアイデアを与えるのに役立つかも
また、 'connect'に対するreact-reduxのテストの多くは、テストを書くための十分な出発点です。 –
ありがとうございますので、推奨されるアプローチは何ですか?私は単体テストをダム・レムックス・アウェア・ソープだけでテストし、状態遷移をレデューサー・ユニット・テストで別々にテストすることを考えています。 – user3139602