私は、react と redux に基づいてアプリケーションのテスト ケースを作成しています。
container = TestUtils.renderIntoDocument(
<Provider store={createStore({"key": "old_val"})}>
{() => <Component />}
</Provider>
);
でレンダリングした後initialState
、アクションをディスパッチして、状態が変化するかどうかを確認します。
Component.store.dispatch({ type: 'SET_VAL', value: 'some_val' });
次に、状態を出力します
console.log(store.getState());
私は状態がであることを期待しています{"key": "some_val"}
。ただし、まだ表示されます{"key": "old_val"}
。
action-creators
テストではなく、アプリケーションは正常に動作するため、またはに問題はありませんreducers
。
ここで何か間違ったことをしていますか?ところで、thunk
非同期アクションのディスパッチにミドルウェアを使用しています。それはここで干渉しますか?はいの場合、非同期アクションが完了するまで待つにはどうすればよいですか?
アップデート:
ここに示すredux テストは非常に簡単ですが、問題なく動作しているようです。
store.dispatch(addTodo('Hello'));
expect(store.getState()).toEqual([{
id: 1,
text: 'Hello'
}]);