在 Jest 中使用 ES6 模块

Jest 是一个用于 JavaScript 的测试框架,其具有优秀的性能和易用性。在编写测试代码时,ES6 模块已经成为一个很常见的需求。但是,Jest 默认不支持 ES6 模块的语法。如果我们想要在 Jest 中使用 ES6 模块,需要进行一些额外的配置。

本篇文章将会介绍如何在 Jest 中使用 ES6 模块,让你实现更好的测试覆盖率,提高代码质量。

配置 Jest

首先,我们需要在 Jest 的配置文件中开启对 ES6 模块的支持。具体的操作如下:

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

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

这里的 moduleFileExtensions 是用来告诉 Jest 哪些文件扩展名应该被视为模块。由于我们要使用 ES6 模块,所以需要加入 .js,并且还需要将 .jsx 加入其中,以支持 React。

配置 Babel

接下来,我们需要使用 Babel 转译 ES6 模块的语法。在 Babel 6.x 版本之前,我们需要使用 babel-jest 来处理 ES6 模块的语法,但是在 Babel 7.x 版本之后,我们需要使用 @babel/preset-env 来完成这个任务。

在项目根目录下安装 @babel/preset-env

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

然后,在 .babelrc 文件中添加以下代码:

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

这里的 "targets": { "node": "current" } 告诉 Babel,我们的代码将会在 Node.js 的最新版本中运行,所以它只需要转译最新的 ES6 语法即可。

使用 ES6 模块进行测试

现在,你已经成功地配置了 Jest 和 Babel,可以使用 ES6 模块进行测试了。以下是一个使用 ES6 模块编写的测试示例代码:

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

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

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

在这个示例中,我们使用 exportimport 来实现模块化,而不是使用 module.exportsrequire。这是 ES6 模块的语法,它可以让你更方便地组织代码。

在测试文件中,我们使用了 import 语句来导入 add() 函数,然后使用 test() 函数来编写测试用例。执行 npm test 命令,你应该可以看到测试通过。

总结

在 Jest 中使用 ES6 模块需要进行一些额外的配置,但是这是值得的,因为使用 ES6 模块可以让你更好地组织代码,并且可以提高测试效率。希望这篇文章对你有帮助!

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