【发布时间】:2021-08-22 03:03:43
【问题描述】:
我还在学习反应测试。你能告诉我如何测试这个吗?我有这样的,但没有工作。我在下面添加了减速器。
export const getUserData = (data) => async (dispatch, getState) => {
const user = await fetch(`${process.env.REACT_APP_API_URL}/users/${data}`).then(res => res.json())
await dispatch(getUser(user))
return user
}
import { getUserData } from "../userReducers";
global.fetch = jest.fn(() =>
Promise.resolve({
json: () => ({ login: 'Someone' })
})
)
describe("Testing user reducers", () => {
it("will hit mock API and get response", () => {
const response = getUserData('Someone')
expect(response).toEqual({ login: 'Someone' })
})
})
export const GET_USER = "GET_USER";
export const getUser = (user) => ({
type: GET_USER,
payload: user,
});
【问题讨论】:
-
您是要测试减速器,还是专门测试动作创建器?
-
我想测试一个减速器@DrewReese
-
您能否更新您的问题以包含您想练习的减速器功能?
-
我在那里添加了一个调度功能。 @DrewReese
-
reducer 函数具有类似
(state, action) => nextState的函数签名。为了测试你调用 reducer 函数并传递一些测试状态和调用动作创建者的结果。断言“nextState”是您期望的值。