在 Jest 测试中使用 TypeScript 的完整教程

阅读时长 4 分钟读完

Jest 是一个非常流行的 JavaScript 测试框架。然而,它虽然可以很好地测试 JavaScript 代码,但对于 TypeScript 的支持则存在一些限制。本文将为您介绍如何配置 Jest 以测试 TypeScript 代码,并且带您逐步了解如何使用 Jest 进行完整的 TypeScript 测试。

安装 Jest 和相关工具

在开始之前,您需要确保已经安装了以下工具:

  • Node.js
  • TypeScript
  • Jest

如果您尚未安装 Jest,请使用以下命令进行安装:

配置 TypeScript

要让 Jest 支持 TypeScript,您需要使用 ts-jest 库将 TypeScript 转换为 JavaScript。以下是使用 npm 安装 ts-jest 的命令:

接下来,您需要在项目中创建一个 tsconfig.json 文件,以告诉 TypeScript 如何将 TypeScript 转换为 JavaScript。以下是一个示例 tsconfig.json 文件:

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

该文件包含了一些常见 TypeScript 编译器选项的设置,例如将模块设置为 commonjs,将目标设置为 es6,以及使用 outDir 将编译输出文件存储在 dist 文件夹中。此外,我们还排除了所有的 .spec.ts 文件(Jest 测试文件不需要被编译)。

配置 Jest

现在,让我们配置 Jest 来支持 TypeScript。在 package.json 文件中添加以下配置:

这个配置告诉 Jest,我们要使用 ts-jest 进行测试("preset": "ts-jest"),以便 Jest 可以将 TypeScript 代码转换为 JavaScript,并在测试中使用。

编写测试

现在,您已经完成了配置,可以开始编写测试了。以下是一些示例测试:

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

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

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

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

上述代码的意思是,测试 sum() 函数是否正确的将两个数字相加,以及当传递非数字参数时是否会引发错误。在这个例子中,我们使用了 Jest 的 describe()it() 函数来编写测试套件和测试用例,使用了 expect()toBe() 函数断言测试结果。

运行测试

现在,您已经写好了测试,是时候运行它们了。在 package.json 文件中添加以下命令:

然后,使用以下命令来运行所有测试:

如果一切顺利,您应该会看到类似于以下内容的输出:

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

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

总结

在本文中,我们介绍了如何配置 Jest 来支持 TypeScript,并且编写并运行了一些基本的 TypeScript 测试。希望这篇文章帮助您熟悉 Jest 的基础知识,并能够更好地利用 TypeScript 进行代码测试。

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

纠错
反馈