npm 包 redux-actions-assertions 使用教程

redux-actions-assertions 是一个用于测试 Redux action creators 和 reducers 的 npm 包。它提供了一组方便的断言函数,用于验证 action creators 的输入和输出是否正确,以及 reducer 是否能够正确处理 action。下面详细介绍如何使用这个 npm 包。

安装

使用 npm 安装 redux-actions-assertions:

--- ------- ------------------------ ----------

断言函数

redux-actions-assertions 提供了以下断言函数:

  • expectToDispatchAction(actionCreator, expectedAction): 验证 action creator 的输出是否为指定的 action。
  • expectToDispatchActions(actionCreator, expectedActions): 验证 action creator 的输出是否为指定的一组 action。
  • expectToDispatchError(actionCreator, expectedError): 验证 action creator 是否会抛出指定的错误。
  • expectReducer(initialState, reducer, actions, expectedState): 验证 reducer 是否能够正确处理一组 action,从而达到预期状态。

使用示例

验证 action creator 的输出是否为指定的 action

例如,我们有一个 action creator:

------ ----- ---------------- - ------- -- --
  ----- ------------
  -------- -----
--

我们希望验证这个 action creator 在输入值为 3 时,输出的 action 是否为 { type: 'INCREMENT', payload: 3 }。代码如下:

------ - ---------------------- - ---- --------------------------
------ - ---------------- - ---- -----------

-------------------------- ------ --------- -- -- -
  ---------- -------- --- ------- -------- -- -- -
    ---------------------------------------- -
      ----- ------------
      -------- -
    -----
  --
--

这个断言函数接收两个参数:action creator 函数和期望的 action 对象。它返回另一个函数,可以传递给 action creator,以验证输出是否与期望值相同。

验证 action creator 的输出是否为一组指定的 actions

假设我们有一个 action creator,能够同时输出两个 action:

------ ----- ------- - ------ -- ---------- --------- -- -
  ----------
    ----- -------------------
    -------- - ---- -
  --
  ----------
    ----- -------------------
    -------- - ---- -
  --
-

我们希望验证这个 action creator 在输入值为 'hello' 时,是否会依次输出两个指定的 action。代码如下:

------ - ----------------------- - ---- --------------------------
------ - ------- - ---- -----------

----------------- ------ --------- -- -- -
  ---------- -------- --- ------- --------- -- -- -
    -------------------------------- -
      - ----- ------------------- -------- - ----- ------- - --
      - ----- ------------------- -------- - ----- ------- - -
    -----------
  --
--

这个断言函数接收两个参数:action creator 函数和一个由期望的 action 对象组成的数组。它返回另一个函数,可以传递给 action creator,以验证输出是否与期望值相同。

验证 action creator 是否会抛出指定的错误

假设我们有一个 action creator,能够抛出指定的错误:

------ ----- ---------- - -- -- -
  ----- --- -------------- -------
-

我们希望验证这个 action creator 是否会抛出指定的错误。代码如下:

------ - --------------------- - ---- --------------------------
------ - ---------- - ---- -----------

-------------------- ------ --------- -- -- -
  ---------- ----- - ------- ------- -- -- -
    --------------------------------- --- -------------- ----------
  --
--

这个断言函数接收两个参数:action creator 函数和期望抛出的错误。它返回另一个函数,可以传递给 action creator,以验证是否会抛出指定的错误。

验证 reducer 是否能够正确处理 action

假设我们有一个 reducer:

----- ------------ - ------ - --- ------- -- -
  ------ ------------- -
    ---- -----------
      ------ ---------- ---------------
    --------
      ------ -----
  -
-

我们希望验证这个 reducer 在处理一组 action 后,能够达到预期的状态。代码如下:

------ - ------------- - ---- --------------------------
------ ------------ ---- ------------

------------------------ -- -- -
  ---------- ------ -------- -------- -- -- -
    ----- ------------ - --
    ----- ------- - -
      - ----- ----------- -------- ------- --
      - ----- ----------- -------- ------- -
    -
    ----- ------------- - --------- --------

    --------------------------- ------------- -------- --------------
  --
--

这个断言函数接收四个参数:初始状态、reducer 函数、一组 action 和期望的状态。它会依次处理每个 action,直到最终状态与期望状态相同。

结语

redux-actions-assertions 是一个方便的 npm 包,能够帮助开发者编写更加可靠的 Redux 测试代码。希望本文能够对你的工作有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6006700ae361a36e0bce8c49


猜你喜欢

  • npm 包 springbokjs-di 使用教程

    什么是 springbokjs-di? springbokjs-di 是一个依赖注入框架,它能够帮助你解耦你的代码并允许你更好地管理你的应用程序中的对象之间的依赖关系。

    4 年前
  • 前端类技术文章:springbokjs-dom npm 包使用教程

    简介 在前端项目开发过程中,我们会使用很多第三方库和框架。npm 是最常用的 JavaScript 包管理器之一,而 springbokjs-dom 是其中一个非常有用的包,它主要用于实现 DOM 操...

    4 年前
  • npm包 springbokjs-dom-components使用教程

    简介 Springbokjs-dom-components是一个基于React的UI组件库,它提供了许多在Web开发中常用且易于维护的DOM组件。此npm包使得在React项目中使用这些组件更加容易。

    4 年前
  • npm 包 springbokjs-models 使用教程

    前言 在前端开发过程中,处理数据是一个关键的环节。随着数据变得越来越复杂,开发者们需要更好的方式来管理数据。为此,很多开发者选择使用 Model-View-Controller (MVC)框架。

    4 年前
  • npm 包 springbokjs-router 使用教程

    简介 springbokjs-router 是一个轻量级的 JavaScript 路由库,可以用于在前端应用程序中启用单页应用程序(SPA)路由。它可以轻松地管理浏览器历史记录和路由事件,并对路由对象...

    4 年前
  • npm包squirrelled使用教程

    前言 在前端开发过程中,我们经常会用到一些和动画、布局相关的npm包。然而,如果每次都从零开始创建动画、布局是一种费时又费力的事情。因此,今天我要介绍一个npm包——squirrelled,它可以极大...

    4 年前
  • npm 包 sqlite3-orm 使用教程

    简介 sqlite3-orm 是一个使用 SQLite 作为数据库,提供面向对象风格的操作方式的 Node.js ORM(对象关系映射)框架,通过该框架可以快速完成数据库表的创建以及数据的 CRUD ...

    4 年前
  • NPM 包 squirrel-react-native 使用教程

    Squirrel-react-native 是一个 React Native 应用程序访问 squirrel 远程调试服务器的 npm 包。它可以帮助开发者更好地调试 React Native 应用程...

    4 年前
  • npm 包 sqlite3-webapi-kit 使用教程

    前言 在 Web 开发中,我们经常需要通过前端来访问数据库并进行数据操作。而其中一种数据库是轻量级的 SQLite,由于其小巧、开源、易部署等优点,使用 SQLite 的 Web 应用越来越多。

    4 年前
  • npm 包 sqlite3-upsert 使用教程

    前言 在前端开发中,我们经常需要使用数据存储工具。而 SQLite 是一种轻量级嵌入式数据库,可以用来存储小型数据,最常用的应用是在本地存储浏览器中的应用程序数据。

    4 年前
  • npm 包 sqlmagic 使用教程

    前言 在进行前端开发的时候,我们经常会与后端的数据库打交道,而 SQL 作为数据库查询语言,对我们开发来讲是一个必须熟练掌握的技能,而 SQL 的编写却有时候十分复杂。

    4 年前
  • npm 包 sqlitedb 使用教程

    在前端开发中,我们经常需要使用数据库来持久化存储数据。而 sqlitedb 是一个基于 Node.js 的轻量级数据库,可以在前端使用。本文将介绍 sqlitedb 的使用方法。

    4 年前
  • npm包sqlite4.js使用教程

    什么是SQLite? SQLite是一种嵌入式数据库管理系统,使用C语言编写,不需要一个单独的服务器端进程和系统,因此轻量并且成为了非常流行的关系数据库引擎。 SQLite的优势 SQLite的优点在...

    4 年前
  • npm 包 springbokjs-server 使用教程

    什么是 springbokjs-server? springbokjs-server 是一个用于构建基于 Node.js 服务端应用的轻量级框架,可用于快速开发 RESTful API、Web 应用等...

    4 年前
  • npm 包 sqlite3b 使用教程

    SQLite 是一个流行的轻型关系型数据库,它的优点是启动速度快、占用空间小、资源占用低。而 sqlite3b 是一个基于 SQLite 的 npm 包,它可以让我们更加方便地在前端中使用 SQLit...

    4 年前
  • npm 包 springbokjs-shim 使用教程

    介绍 npm 是 Node.js 生态圈中最常用的包管理工具,提供了各种各样的依赖,让开发者能够更快更方便地开发项目。在前端方面,一些比较流行的框架,如 React 和 Vue.js,都需要在 npm...

    4 年前
  • npm 包 springer-uptime 使用教程

    前言 在进行 Web 开发的过程中,服务器的稳定性和可靠性是我们必须要考虑的因素。其中之一便是成本高昂的服务器监控。幸运的是,有一些 npm 包可以帮助我们监控服务器的状态。

    4 年前
  • npm 包 springbooter-core 使用教程

    什么是 springbooter-core springbooter-core 是一个常用的前端开发工具包,它提供了一系列的工具来简化前端开发过程中的一些重复性操作,比如说路由管理、状态管理、组件缓存...

    4 年前
  • npm 包 ssh-shell 使用教程

    在前端开发中,很多时候我们需要通过命令行工具来操作服务器,进行代码部署、服务管理等操作。而我们又希望能够通过 JavaScript 代码来实现这些操作,这时候就需要用到 npm 包 ssh-shell...

    4 年前
  • npm 包 squiss 使用教程

    什么是 squiss? Squiss 是一个基于 JavaScript 的轻量级移动端滑动事件处理器,可以用于在移动端创建可滑动的容器组件,同时提供了多个事件 API,方便开发者进行控制和定制。

    4 年前

相关推荐

    暂无文章