Enzyme 中 redux-mock-store 的使用方法

在前端开发中,测试是非常重要的一个环节。而对于使用 redux 管理状态的应用来说,测试就更加重要了。redux-mock-store 是一个非常好用的 redux store 模拟工具,可以帮助我们轻松地进行 redux 相关的测试。本文将介绍在 Enzyme 中使用 redux-mock-store 的方法。

安装

首先,我们需要安装 redux-mock-store 和 Enzyme:

其中,enzyme-adapter-react-16 是适用于 React 16 的 Enzyme 适配器。

使用

1. 配置 Enzyme

在测试文件中,我们需要先配置 Enzyme。在 src/setupTests.js 中添加以下代码:

2. 创建模拟 store

我们可以使用 redux-mock-store 的 createStore 方法来创建一个模拟的 store。例如:

其中,configureMockStore 方法可以接受一个对象作为初始状态。如果不需要初始状态,可以传入一个空对象。

3. 渲染组件

接着,我们可以使用 Enzyme 的 shallow 方法来渲染组件,并将模拟的 store 传递给组件。例如:

4. 断言

最后,我们可以使用 Enzyme 的断言方法来进行测试。例如:

其中,getActions 方法可以获取 store 中的 action 数组,我们可以使用它来判断是否正确地触发了 action。

示例代码

下面是一个完整的示例代码:

在这个示例中,我们测试了一个名为 MyComponent 的组件。我们首先创建了一个模拟的 store,并将其传递给组件。然后使用 Enzyme 的 shallow 方法渲染组件,并进行了两个测试,分别测试了组件的渲染和 action 的触发。

总结

使用 redux-mock-store 可以帮助我们轻松地进行 redux 相关的测试。在 Enzyme 中使用 redux-mock-store 也非常简单,只需要创建模拟的 store 并将其传递给组件即可。希望本文对大家有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655b57a5d2f5e1655d57eec1


纠错
反馈