9

假设我有几个减速器功能,我将它们全部组合成一个减速器combineReducers(...),有没有一种方法可以测试组合减速器实际包含的减速器?

例如,如果我有这个:

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(...)函数用于将它们全部组合起来的文件中。我正在测试所有单个减速器以检查它们是否做了他们应该做的,但我也认为测试组合减速器以确保它包含它应该包含的所有其他减速器是一个好主意(以防我忘记例如添加一个)。

谢谢

4

1 回答 1

7

您正在测试错误的 IMO。你应该相信这个combineReducers()函数做了它应该做的(它应该在 Redux 分发测试中进行测试)。但是您可以创建一个方法,该方法将返回带有减速器的对象,以组合作为参数传递给combineReducers(). 该方法可以而且应该进行测试。

于 2016-03-06T17:36:02.240 回答