JestとReduxを初めて使用し、ストアにディスパッチするが戻り値を返さない関数のテストに問題があります。 「:プロパティを読み取ることができません 『し、』未定義の例外TypeError」このRedux - Jest:void戻り値を持つテスト関数
return store.dispatch(actions.fetchTodos()).then(() => {
// return of async actions
expect(store.getActions()).toEqual(expectedActions)
})
しかし、私はエラーが発生し、何も返さない、いくつかの「fetchtodos」の機能を持っていない私はRedux websiteからの例に従うことをしようとしています未定義のため返されます。私のモックストアが正しくアップデートされていることをテストするために何ができるのだろうかと思います。関数をディスパッチして終了するのを待ってから、模擬ストアと期待される結果を比較する方法はありますか?
おかげ
編集:私たちはtypescriptです
を使用しているアクションTSX
export function selectTopic(topic: Topic | undefined): (dispatch: Redux.Dispatch<TopicState>) => void {
return (dispatch: Redux.Dispatch<TopicState>): void => {
dispatch({
type: SELECT_Topic,
payload: topic,
});
dispatch(reset(topic));
};
}
test.tsx
const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);
describe('Select Topic action',() => {
it('should create an action to select .',() => {
const topic: Topic = mockdata.example[0];
const expectedAction = {
type: actions.SELECT_TOPIC,
payload: topic,
};
const store = mockStore(mockdata.defaultState);
return store.dispatch(actions.selectTopic(topic)).then(() => {
expect(store.getState()).toEqual(expectedAction);
});
});
});
からアクションは、私がテストするために与えられてるものです(そしてそれに似た他の多くの関数があります。テストコードを実行するときにその未定義のエラーが発生しています。関数が何も返さない。
お返事ありがとうございます。そのため、私たちのコードベースにReduxThunkミドルウェアが適用されていました。私はredux-mock-storeライブラリを使用していて、このミドルウェアでmockstoreを設定しています。より一般化されたコードで私のクエストを更新する瞬間を与えてください。 – Exuro