如何测试状态中的数据以测试从状态中删除的Redux reducer?

时间:2019-02-19 13:58:36

标签: reactjs unit-testing redux jestjs

在ReactJS / Redux应用程序中测试化简器时,如何向状态添加一些测试数据?

我有这个测试用例:

it("should store selected filter", () => {

    const selectedFilterData = { 
        id: 4321, 
        filterGroupId: 1234, 
        filterName: "gender", 
        text: "Male", 
        value: "pdl_profile_gender_1"
    }

    const action = { type: FILTER_SELECTED, data: selectedFilterData }

    Reducer(filters).expect(action).toReturnState({
        1234: {
            id: 1234,
            selectedFilters: [
                {
                    id: 4321,
                    filterName: "gender",
                    text: "Male",
                    value: "pdl_profile_gender_1"
                }
            ]
        }
    })
})

此操作/归约器为相应的ID更新现有的“ selectedFilters”属性。当没有任何状态时,上面的测试正在运行,因此会引发错误。如何在特定测试用例的状态下添加测试数据?

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

好像您正在使用redux-testkit。根据文档,您可以使用withState。这是一个例子。

Reducer(filters)
  .withState(state) // like this!
  .expect(action)
  .toReturnState(result);

https://github.com/wix/redux-testkit/blob/master/README.md