Jest 如何测试 Redux 异步操作?

阅读时长 4 分钟读完

在前端开发中,Redux 已经成为了一个非常流行的状态管理工具。而在 Redux 中,异步操作是一个重要的部分,但是测试其异步操作并不容易。本文将介绍如何使用 Jest 在 Redux 中测试异步操作。

Redux 异步操作简介

在 Redux 中,异步操作是指从后端获取数据、更新本地数据、发送请求等等操作。Redux 异步操作需要我们使用 Thunk、Saga、Observable 或其他中间件来进行实现。在测试过程中,我们最终的目标是检查异步操作是否产生了正确的行为。这个目标与同步操作不同,因为异步操作不是立刻执行完毕的。

使用 Jest 测试异步操作

Jest 是一个流行的 JavaScript 测试框架。它可以用于测试 Redux 异步操作。在测试前,我们需要进行一些准备工作:

  1. 安装库

  2. 在测试文件中导入库

  3. 配置 mock store

到了这一步,我们可以开始测试了。下面是一个示例,用于测试一个异步操作。

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

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

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

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

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

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

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

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

在这个示例中,我们测试了 fetchUsers 异步操作。首先,我们在 MockAdapter 上配置了一个模拟的/users 请求,当收到该请求时,它将返回模拟的用户数据。接着,我们断言在“请求”开始前,store 应该先发出一个 CLEAR_USERS 的 action,在“请求”完成后,store 应该接收到一个 FETCH_USERS 的 action。

总结

在 Redux 中,异步操作是一个重要的部分。使用 Jest 测试 Redux 异步操作可以确保它们正确的行为。在测试异步操作时,我们需要确保在 dispatch 之前存储已经准备好了期望的 actions。总之,测试 Redux 异步操作可以更方便的确保我们代码的正确性。

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

纠错
反馈