在 Jest 中测试带有 Redux Thunk 的异步操作

阅读时长 7 分钟读完

在 Jest 中测试带有 Redux Thunk 的异步操作

在前端领域中,测试是不可避免的一个环节。针对 Redux Thunk 异步操作的测试也是必须的一步。下面介绍在 Jest 中测试带有 Redux Thunk 的异步操作的具体步骤。

  1. 安装 Jest 和相关依赖

如果你已经在项目中使用了 Jest,可以跳过这一步。如果没有,需要先安装 Jest。在命令行中输入以下代码安装 Jest:

为了使测试更简单且易于理解,我们推荐使用 Enzyme、redux-mock-store 和 redux-thunk 这些库。输入以下命令进行安装:

  1. 安装 Jest 配置文件

在项目根目录下新建文件 jest.config.js,并输入以下代码:

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

如果有需要,可以根据自己的项目进行修改。

  1. 编写测试用例

我们将使用 Enzyme、redux-mock-store 和 redux-thunk 来编写测试用例。先来编写一个简单的 Redux Thunk 异步操作:

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

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

接下来,我们将对这个异步操作进行测试。

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

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

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

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

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

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

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

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

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

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

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

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

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

这里涵盖了多种测试场景:请求开始时 dispatch「FETCH_DATA_REQUEST」action;请求成功时 dispatch「FETCH_DATA_SUCCESS」action;请求失败时 dispatch「FETCH_DATA_FAILURE」action。我们使用了 Jest 自带的 expect 断言方法。

  1. 运行测试

在命令行中输入以下命令以运行测试:

如果测试全部通过,则输出如下信息:

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

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

至此,我们已经成功地在 Jest 中测试带有 Redux Thunk 的异步操作。

总结

本文介绍了在 Jest 中如何测试带有 Redux Thunk 的异步操作。通过使用 Enzyme、redux-mock-store 和 redux-thunk,我们可以更方便地编写和运行测试用例。测试是前端开发中不可或缺的一环,是保证代码质量、提高开发效率的关键步骤。有了本文的指导,相信读者们能够更加轻松地进行测试工作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64dec925f6b2d6eab39e8e98

纠错
反馈