Enzyme 编写 React 单元测试(基础篇)

阅读时长 5 分钟读完

什么是 Enzyme?

Enzyme 是一个用于 React 应用程序的 JavaScript 测试工具,它提供了一组易于使用的 API,用于测试 React 组件的输出和行为。Enzyme 可以帮助你更轻松地编写可维护的、健壮的单元测试。

安装 Enzyme

你可以使用 npm 或 yarn 安装 Enzyme:

或者

配置 Enzyme

在编写任何测试之前,你需要配置 Enzyme。你需要将 Enzyme 适配器与 React 一起使用。在此示例中,我们将使用 Enzyme 适配器为 React v16。

编写测试

测试组件渲染

我们将从测试组件渲染开始。假设我们有一个简单的组件:

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

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

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

我们可以使用 Enzyme 的 shallow 方法来测试组件的渲染:

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

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

在这个测试中,我们使用 shallow 方法将组件浅渲染,然后使用 Jest 的 toMatchSnapshot 方法来比较渲染结果。

测试组件属性

下一步,我们将测试组件的属性。假设我们有一个接受 name 属性的组件:

我们可以使用 Enzyme 的 shallow 方法来测试组件属性:

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

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

在这个测试中,我们使用 shallow 方法将组件浅渲染,然后使用 find 方法找到组件中的 h1 元素,并使用 text 方法获取其文本内容。最后,我们使用 Jest 的 toEqual 方法来比较文本内容。

测试组件事件

最后,我们将测试组件事件。假设我们有一个接受 onClick 属性的组件:

我们可以使用 Enzyme 的 shallow 方法来测试组件事件:

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

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

在这个测试中,我们使用 shallow 方法将组件浅渲染,然后使用 find 方法找到组件中的 button 元素,并使用 simulate 方法模拟点击事件。最后,我们使用 Jest 的 toHaveBeenCalled 方法来验证 onClick 方法已被调用。

结论

在本文中,我们介绍了 Enzyme 的基础知识,并演示了如何使用 Enzyme 编写 React 单元测试。我们希望这篇文章能够帮助你更好地理解 Enzyme 的工作方式,并为你编写更健壮的单元测试提供指导。

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

纠错
反馈