React + eslint + jest + enzyme 实战配置

React 是当前前端开发中最受欢迎的框架之一,它的组件化开发方式使得我们可以非常方便地构建复杂的用户界面。但是,随着项目的复杂度不断提高,我们需要更好的方式来保证代码的质量和可维护性。这时,eslint 和 jest + enzyme 就是我们的不二选择。

eslint:保证代码质量

eslint 是一款非常流行的 JavaScript 代码检查工具,它可以帮助我们在编写代码的过程中发现常见的错误和潜在的问题,从而保证代码的质量和可读性。在 React 项目中,我们可以使用 eslint-plugin-react 插件来检查 JSX 语法和常见的 React 相关问题。

安装和配置

首先,我们需要安装 eslint 和 eslint-plugin-react:

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

然后,在项目根目录下创建一个 .eslintrc 文件,配置 eslint:

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

我们使用了 eslint:recommended 和 plugin:react/recommended 两个预设,分别包含了常见的 JavaScript 和 React 相关的规则。同时,我们开启了 JSX 语法支持,并指定了 ECMAScript 版本和模块类型。

常见规则

eslint 支持很多规则,这里介绍一些常见的规则:

  • indent:缩进风格,建议使用 2 个空格。
  • semi:是否使用分号,建议使用分号。
  • quotes:字符串引号风格,建议使用单引号。
  • no-unused-vars:未使用变量检查,建议开启。
  • no-console:禁止使用 console,建议开启。

这些规则可以在 .eslintrc 文件中配置,例如:

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

集成到编辑器中

为了方便使用,我们可以把 eslint 集成到编辑器中。以 VS Code 为例,我们可以安装 ESLint 插件,然后在编辑器设置中开启自动保存和错误提示:

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

这样,我们就可以在编辑器中实时检查代码,并修复常见的问题。

jest + enzyme:保证组件质量

jest 和 enzyme 是 React 测试中非常流行的工具,它们可以帮助我们编写自动化测试,从而保证组件的质量和可维护性。

安装和配置

首先,我们需要安装 jest 和 enzyme:

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

然后,在项目根目录下创建一个 jest.config.js 文件,配置 jest:

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

我们使用了 testEnvironment: 'node',表示在 Node.js 环境中运行测试。另外,我们还配置了一个 moduleNameMapper,用于模拟 CSS 模块导入。

接着,在项目根目录下创建一个 src/setupTests.js 文件,配置 enzyme:

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

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

这里使用了 Enzyme.configure 方法来配置 enzyme,指定了 React 16 的适配器。

编写测试用例

接下来,我们来编写一个简单的测试用例,测试一个 Counter 组件:

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

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

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

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

这里使用了 jest 和 enzyme 提供的 API,分别测试了组件的渲染、增加和减少计数器的功能。

集成到 CI/CD 中

为了保证代码的质量和可维护性,我们可以把 eslint 和 jest + enzyme 集成到 CI/CD 中,例如使用 Travis CI 或 Github Actions。这样,每次提交代码时,都会自动运行测试和检查代码。

总结

本文介绍了如何使用 eslint 和 jest + enzyme 来保证 React 项目的代码质量和组件质量。通过合理配置,我们可以在开发过程中自动发现常见的问题,并编写自动化测试来保证组件的正确性和可维护性。希望本文对你有所帮助。

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