問題タブ [redux-mock-store]
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.
redux - redux-mock-store が catch promise でディスパッチされたアクションを表示しないのはなぜですか?
タイトルの質問を考えるのが下手で、すみません。
私の問題:
docs で提案されているように、非同期の redux アクションを単体テストしています。で API 呼び出しをモックしnock、ディスパッチされたアクションを でチェックしredux-mock-storeます。これまでのところうまく機能していますが、明らかに機能しているにもかかわらず失敗するテストが 1 つあります。ディスパッチされたアクションは、 によって返される配列に表示されstore.getActions()ず、 で状態が変更されませんstore.getState()。手動でテストしてRedux Dev Toolsで観察するとわかるので、それが起こると確信しています。
このアクション ディスパッチで唯一異なる点は、別のプロミスのキャッチ内のプロミスで呼び出されることです。(混乱するように聞こえるかもしれませんが、コードを見てください!)
私のコードは次のようになります。
アクション:
このhttpPostメソッドは、ステータス コードが 200 ~ 299 の範囲にない場合にスローする単なるラッパーでfetchあり、失敗しない場合は json をオブジェクトに解析します。関連性があると思われる場合はここに追加できますが、これを長くしたくありません。
表示されないアクションはdispatch(setError(data.error)).
テスト:
読んでくれてありがとう。
編集:
setErrorアクション:
httpPostメソッド:
javascript - アクションをディスパッチした後、redux-mock-store ストアの状態が更新されない
ディスパッチされようとしているアクションと次の状態を示すロガー ミドルウェアがあります。
私は自分のアクションのテストを書いており、モック ストアでアクションをディスパッチしています。これらは正常にディスパッチされますが、モック ストアの状態は更新されません (前述のロガーが示すように)。
redux-mock-store を使用していることに注意してください。
ロガーには次のように表示されます。
reactjs - redux thunk を使用した非同期アクションのテスト
非同期呼び出しを持つアクションをテストしようとしています。ミドルウェアとしてThunkを使用しています。OK以下のアクションでは、サーバーが応答を返した場合にのみストアをディスパッチして更新します。
ディスパッチが呼び出されるか呼び出されないか (サーバーの応答に応じて) のいずれかのテストにテストを書くのに問題があります。
fetch-mock を使用して、Web の fetch() 実装をモックしています。ただし、コードのブロックがthen実行されないようです。ここの例も試してみましたが、うまくいきませんでした - http://redux.js.org/docs/recipes/WritingTests.html
これをもう少し調べたところ、fetch-mock が promise を解決しないために then ステートメントが実行されるか、fetch が完全にスタブ化されているかのいずれかに問題があると思います。両方の then ステートメントに console.log を追加すると、何も実行されません。
テストで間違っていることは何ですか?
javascript - 以前のディスパッチ呼び出しに依存する非同期アクション作成者をテストするにはどうすればよいですか?
2 つのアクションに分割された非同期アクション クリエーターがあります。1 つはアクションの開始を通知し、もう 1 つは終了を通知します。非同期アクション作成者の途中の Web 要求は、最初の同期ディスパッチによって設定された値に依存します。
redux-mock-store のディスパッチの実装はかなりまばらで、(明らかな) 後から考えると、モック化されたストアにレデューサーを渡すことはありません。
これは、最初のdispatch呼び出しが、2 番目のディスパッチ呼び出しが依存する状態を更新する可能性がないことを意味します。次に作成する Web リクエストには、非同期アクション コールから更新された値ではなく、toと日付の元の値が含まれます。from
内のパラメータにさらに変換が適用される可能性があるため、 に渡されたfromおよびの値を直接使用することは避けたいと思います。willの結果に直接依存することで、さまざまな方法でフィルタリングするいくつかの同様のメソッドを DRY することもできます。tochangeFilterchangeFilterRequestgetState
これらのタイプのテストで従うべきパターンはありますか? アクションクリエーターを構築する別の方法はありますか?
redux - 2番目の引数は何ですか?
このコードはチュートリアルで見つけました
とのビット全体expectedActionsが意味をなさない。
ドキュメントによると、 に 2 番目の引数がstoreある場合、それは関数である必要があります。(ただし、その機能が何をするかについての説明はありません)。
最初はなんらかの理由でストアに何らかのアクションを強制していると思っていましたが、console.logそうではないと簡単に教えてくれました。
dispatchアクションが蓄積されるだけだからです。
では、それはテキストの間違いですか、それともさらに調査するための知恵ですか?
unit-testing - nock および redux-mock-store エラーによる Redux アクションのテスト
私はreduxテストに不慣れで、アプリケーションのバックフィルテストを試みていましたが、これがnockとredux-mock-storeでテストする完全に間違った方法である場合は申し訳ありません.
これはメソッドであり、呼び出されているように見えますが、通常はヘッダーが一致しないというノック失敗の原因をキャッチします。
ヘッダーが削除され、ノックが通話を傍受した場合でも。毎回このエラーが発生します