测试 Redux 组合减速器
Testing Redux combined reducers
假设我有几个 reducer 函数,我使用 combineReducers(...)
将它们全部组合成一个 reducer,有没有一种方法可以测试组合的 reducer 实际包含哪些 reducer?
例如,如果我有这个:
import { combineReducers } from 'redux'
const reducer1 = (state, action) => {...}
... (more reducers, etc)
const rootReducer = combineReducers({
reducer1,
reducer2,
reducer3
})
export default rootReducer
我可以用 Mocha 和 Expect.js 编写一个测试来检查 rootReducer
是否包含 reducer2
吗?这甚至可能吗?
我目前设置项目的方式是每个减速器都在一个单独的文件中,然后导入到使用 combineReducers(...)
函数将它们全部组合在一起的文件中。我正在测试所有单独的减速器以检查它们是否做了它们应该做的事情,但我也认为测试组合减速器以确保它包含它应该包含的所有其他减速器是个好主意(以防我忘记例如添加一个)。
谢谢
在我看来,您正在测试错误的东西。你应该相信 combineReducers()
函数做了它应该做的事情(它应该在 Redux 分布测试中进行测试)。但是您可以创建一个方法,将 return 对象与 reducers 结合起来作为参数传递给 combineReducers()
。该方法可以而且应该进行测试。
假设我有几个 reducer 函数,我使用 combineReducers(...)
将它们全部组合成一个 reducer,有没有一种方法可以测试组合的 reducer 实际包含哪些 reducer?
例如,如果我有这个:
import { combineReducers } from 'redux'
const reducer1 = (state, action) => {...}
... (more reducers, etc)
const rootReducer = combineReducers({
reducer1,
reducer2,
reducer3
})
export default rootReducer
我可以用 Mocha 和 Expect.js 编写一个测试来检查 rootReducer
是否包含 reducer2
吗?这甚至可能吗?
我目前设置项目的方式是每个减速器都在一个单独的文件中,然后导入到使用 combineReducers(...)
函数将它们全部组合在一起的文件中。我正在测试所有单独的减速器以检查它们是否做了它们应该做的事情,但我也认为测试组合减速器以确保它包含它应该包含的所有其他减速器是个好主意(以防我忘记例如添加一个)。
谢谢
在我看来,您正在测试错误的东西。你应该相信 combineReducers()
函数做了它应该做的事情(它应该在 Redux 分布测试中进行测试)。但是您可以创建一个方法,将 return 对象与 reducers 结合起来作为参数传递给 combineReducers()
。该方法可以而且应该进行测试。