我正在使用Redux展開運算符來希望將狀態保持爲不可變對象。基本reducer可能會突變應用程序狀態
但是,我正在設法使最簡單的單元測試失敗。
我認爲這個錯誤可能與不可變的問題有關,但是我沒有正確使用spread運算符嗎?
這裏是我的單元測試:
describe('app logic',() => {
it('initialises app',() => {
const newState = reducer(INITIAL_STATE, {type: "NEXT"})
const expectState = {
start: true,
render_component: null,
requests: {},
results: {},
}
console.log('newState', newState)
console.log('expected state', expectState)
expect(newState).to.equal(expectState)
})
})
,這裏是我的減速器
export const INITIAL_STATE = {
start: false,
render_component: null,
requests: {},
results: {}
}
export const next = (state) => {
if (state === INITIAL_STATE) {
return {
...state,
start: true,
}
}
return state
}
export function reducer(state = INITIAL_STATE, action) {
switch (action.type) {
case 'NEXT':
return next(state)
default:
return state
}
}
我打印了兩個對象,而t嘿看起來一樣。 我得到的錯誤:
1)應用邏輯初始化程序:
AssertionError: expected { Object (start, render_component, ...) } to equal { Object (start, render_component, ...) }