Jest 测试中使用 ESLint 插件的最佳实践

随着前端开发的迅速发展,测试成为了每个开发团队必不可少的一部分。Jest 作为一种 JavaScript 测试框架,越来越受到前端开发者的青睐。而在测试过程中,代码风格的一致性非常重要,这就需要对代码进行静态分析。ESLint 是一个非常流行的 JavaScript 语法风格检查工具,本文将介绍 Jest 测试使用 ESLint 插件的最佳实践。

安装 Jest 和 ESLint 插件

首先,我们需要安装 Jest 和 ESLint。可以使用 npm 进行安装:

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

配置 ESLint

在项目的根目录下需要创建 .eslintrc.json 配置文件,我们可以使用 eslint-config-airbnb 作为我们的 ESLint 配置文件,它是一个基于 Airbnb JavaScript 样式指南的 ESLint 共享配置。安装它:

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

然后在 .eslintrc.json 中添加如下代码:

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

这样 ESLint 就可以按照指定的规则对代码进行风格检查了。

配置 Jest

Jest 具有很多默认配置项,可以使用 jest --init 命令来生成默认配置文件 jest.config.js。在这个文件中,我们可以使用 setupFilesAfterEnv 选项来指定在每个测试文件运行前需要运行的模块。我们可以在此处添加 ESLint 插件 eslint-plugin-jest

我们可以使用 npm 进行安装:

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

jest.config.js 文件中添加如下代码:

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

eslint-plugin-jest 在 Jest 测试文件中启用了一些特殊的 ESLint 规则,以便更好地检查测试代码。

为 Jest 配置 ESLint

现在我们需要为 Jest 配置 ESLint 插件。我们可以通过两种主要方法来实现这一点。

方法 1:使用 Jest 选项

Jest 允许在每个测试文件中添加一些选项。我们可以在测试文件的顶部添加选项:

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

这里的选项包括:

  • eslint-disable:禁用所在文件的 ESLint 检查
  • jest/no-disabled-tests:禁止使用 it.skiptest.skip
  • jest/no-focused-tests:禁止使用 it.onlytest.only
  • jest/valid-expect:强制使用 Jest expect
  • jest/no-expect-resolves:禁止在 Jest 匹配器里使用 Promise 和 .resolves
  • jest/expect-expect:强制在每个 ittest 块中至少使用一次 expect
  • import/no-extraneous-dependencies:禁止在测试文件中导入非测试依赖项。

方法 2:使用 Jest 插件

这种方法需要使用 eslint-plugin-jest。我们可以在 .eslintrc.json 文件中配置 Jest 插件。在该文件的 plugins 部分中添加如下代码:

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

这里的选项包括:

  • plugins:指定 ESLint 插件,这里是 Jest 插件。
  • env:指定全局变量,这里是 Jest 的全局变量。
  • rules:指定规则,这可以覆盖默认 ESLint 规则。

结论

在本文中,我们介绍了使用 ESLint 插件来对 Jest 测试代码进行风格检查的最佳实践。我们讨论了安装 Jest、ESLint 和 eslint-config-airbnb,然后配置了它们。然后,我们演示了两种配置 ESLint 插件的方法。这些方法中的任何一种都能为您的 Jest 测试代码提供更好的质量和一致性。同时,这也可以帮助您更好地组织代码,并提高生产效率。

示例代码

下面是一个简单的示例代码,演示了如何使用 Jest 和 ESLint 来测试一个加法函数:

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

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

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

ESLint 检查结果:

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

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

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

在这个例子中,ESLint 指出,it 应该改成 test,并建议使用 toBeNaN 替换 toBeNaN()。此外,还指出了一个未使用的函数名。这些错误提示可以帮助我们找到并纠正代码中的问题。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67209cd42e7021665e030fc5