0
Jester和Redux的新功能,我遇到了調度到商店,但不產生返回值的測試函數的問題。我試圖仿效從Redux website做到這一點Redux - Jest:測試函數有無效返回
return store.dispatch(actions.fetchTodos()).then(() => {
// return of async actions
expect(store.getActions()).toEqual(expectedActions)
})
但是我有幾個「fetchtodos」函數不返回任何導致錯誤「類型錯誤:無法讀取屬性‘然後’未定義」由於返回undefined。我想知道我能做些什麼來測試我的模擬商店是否正確更新。有沒有辦法分配函數,等待它完成,然後比較模擬商店與預期的結果?
感謝
編輯:我們正在使用的打字稿
行動從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