0
我有这样定义的默认初始状态的减速机:单元测试终极版减速器使用它自己的初始状态
const webReducer = (state = {
fetched: false,
data: {}
}, action) => {
switch (action.type) {
case "FETCH_DATA":
state = {
...state,
fetched: action.payload.fetched
};
state.data.push(action.payload.data);
return state;
break;
}
return state;
};
当我运行一个测试来检查初始状态,它传递:
const initialState = {
fetched: false,
data: {}
};
it("Should have a default initial state",() => {
expect(webReducer(undefined, {})).toEqual(initialState);
})
然而,当我尝试测试将数据添加到状态,它返回此错误:
TypeError: state.data.push is not a function
这就是我正在做的T est:
const object = {
fetched: true,
data: {
config: {size: 10}
}
};
expect(
webReducer(undefined, {
type: "FETCH_DATA",
payload: object
})
).toEqual(object);
为什么我现在得到这个错误,如果之前我可以通过测试就好了?我也试图通过默认状态,就像这样:
expect(
webReducer(initialState, {
type: "FETCH_DATA",
payload: object
})
).toEqual(object);
但我发现了同样的错误。
不得不作出一些调整,以测试多个派遣,但我明白了!谢谢= D – celsomtrindade