gpt4 book ai didi

测试使用 Immutable.js 更改多个属性的 reducer

转载 作者:行者123 更新时间:2023-11-28 21:20:55 27 4
gpt4 key购买 nike

我正在尝试将 React/Redux 应用程序迁移到 Immutable.JS 并且有一个关于测试的问题。

给定一个执行如下操作的 reducer :

export default (state = initialState, action) => {
switch (action.type) {

case RUN_ENDED:
return state.set('isRunning', false)
.set('roundResult', action.data)
default:
return state
}

我想测试这两个属性是否已正确设置。

我的旧测试看起来像这样:

it('should handle the RUN_ENDED action', () => {

const action = {
type: RUN_ENDED,
data: {
winnerId: 0
}
}

const result = simulatorReducer(undefined, action)

expect(result).to.deep.equal({
isRunning: false,
roundResult: action.data
})

})

对于 Immutable,我似乎无法以完全相同的方式进行这些比较。我可以使用 result.get('theProperty') 明确检查 result 中的每个值,但如果我有 5-6 个值,这似乎有点费力。

有什么方法可以用 Immutable 做到这一点吗?

最佳答案

你可以使用https://www.npmjs.com/package/jest-immutable-matchers

例如:expect(result).toEqualImmutable(Immutable.Map({isRunning: false, ...}));

关于测试使用 Immutable.js 更改多个属性的 reducer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52040479/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com