Jest 和 Enzyme 协同使用

阅读时长 7 分钟读完

Jest 和 Enzyme 都是 JavaScript 测试框架,它们都可以用来测试前端应用。Jest 是 Facebook 开源的一款测试框架,具有简单易用的特点,内置了断言库、测试运行器以及模拟器等功能;Enzyme 是 Airbnb 开源的一款 React 测试工具,可以方便地测试 React 组件的渲染和交互行为。在实际应用中,Jest 和 Enzyme 也可以协同使用,以保证前端应用的质量和稳定性。

Jest 的基本使用

Jest 是基于 JavaScript 的测试框架,在使用之前需要先安装。可以使用 npm 命令行工具,在项目目录下执行以下命令:

安装完成之后,可以在 package.json 文件中添加以下配置:

这样运行 npm test 命令即可使用 Jest 运行测试。

Jest 的测试文件默认存放在项目根目录下的 __tests__ 文件夹中,并以 .test.js.spec.js 后缀结尾。例如,我们可以新建一个 sum.test.js 文件,其中写入以下代码:

在命令行执行 npm test,可以看到以下输出:

可以看到,Jest 执行了我们编写的测试用例,并输出了测试结果。

Enzyme 的基本使用

Enzyme 是 React 的测试工具,需要先安装 React 才能使用。可以使用 npm 命令行工具,在项目目录下执行以下命令:

其中,enzyme-adapter-react-16 是 Enzyme 与 React 16.x 兼容的适配器。

安装完成之后,在项目目录下的 src 目录中我们可以新建一个名为 App.js 的文件,写入以下代码:

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

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

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

这是一个简单的 React 组件,包含了一个计数器和一个增加计数器的按钮。

接下来,我们可以新建一个 App.test.js 文件,使用 Enzyme 对组件进行测试。在该文件中,我们可以写入以下代码:

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

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

在这个文件中,我们先使用 shallow 函数来渲染 App 组件,并找到按钮元素。然后模拟按钮的点击事件,再次查找计数器元素,判断它是否等于 1。

在命令行执行 npm test,可以看到以下输出:

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

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

可以看到,Enzyme 执行了我们编写的测试用例,并输出了测试结果。

Jest 和 Enzyme 都可以用来测试前端应用,但它们的功能定位不同,Jest 更多是作为一个测试框架,而 Enzyme 更多是作为一个 React 测试工具。因此,Jest 和 Enzyme 的协同使用可以更好地测试前端应用的各个方面。

在协同使用的过程中,我们可以先使用 Jest 对非 React 的部分进行测试,再使用 Enzyme 对 React 组件进行测试。例如,我们可以新建一个 utils.test.js 文件,编写以下代码:

在这个文件中,我们测试了一个名为 sum 的工具函数。

然后,我们可以再新建一个 App.test.js 文件,使用 Enzyme 对组件进行测试。与之前的测试用例类似,我们可以模拟按钮的点击事件,判断计数器是否正确增加。

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

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

在命令行执行 npm test,可以看到以下输出:

可以看到,Jest 和 Enzyme 协同使用,保证了前端应用的质量和稳定性。

总结

Jest 和 Enzyme 都是 JavaScript 测试框架,它们可以协同使用来测试前端应用的各个方面。Jest 和 Enzyme 的功能定位不同,Jest 更多是作为一个测试框架,而 Enzyme 更多是作为一个 React 测试工具。在协同使用的过程中,我们可以先使用 Jest 对非 React 的部分进行测试,再使用 Enzyme 对 React 组件进行测试。这样可以更好地保证前端应用的质量和稳定性。

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

纠错
反馈