反应Redux测试

时间:2018-06-25 23:09:18

标签: reactjs testing redux

我正在努力测试使用Redux存储的React组件。

我已经看到了一个使用redux-mock-store中的Mock Store的示例。

链接:

React/Redux Testing w/ Enzyme

我认为我想在我的真实商店中进行测试。是否有这种情况?是否只测试不需要了解真实商店的组件功能?但是,为什么还要使用任何商店呢?

3 个答案:

答案 0 :(得分:2)

理想情况下,即使没有商店也要对您的组件进行测试。您可以仅代理通过的道具并测试预期的功能。在大多数情况下,您只想测试组件的最终合同,而不是实际的实现详细信息(操作,缩减器等)。

这是一个非常固执己见的观点,但是您可以为项目进行以下类型的测试-

  1. 单元测试组件
  2. 端到端测试页面
  3. 查看针对组件库/设计系统的回归测试。

希望这会有所帮助!

答案 1 :(得分:1)

使用来自redux-mock-store的工具模拟商店对于测试异步操作很有用。

Writing tests for async actions

答案 2 :(得分:0)

您还可以使用工具Check-State-Management测试您的redux(存储/选择器)。

它需要一些配置。根据文档,您:

安装

  • Google Web Store安装chrome扩展程序
  • 在项目的checkState.config.js文件夹中准备/src文件(您需要从该文件中导出所有选择器)。看看example
  • 将我们的中间件插入您的商店:
import * as selectors from "./checkState.config.js";

const checkStateMiddleware = (options = {}) => {
    return window && window["__checkStoreExtension__"] ? window["__checkStoreExtension__"](options) :
        store => next => action => next(action);
};

const store = createStore(
    reducers,
    compose(applyMiddleware(
        checkStateMiddleware(selectors),
    )),
);

完成这些任务后,您可以运行您的应用程序,并在打开Chrome扩展程序的情况下对其进行访问。然后,当您导航并与之交互时,它将根据应用程序的真实状态准备测试用例。