在 Jest 中使用 TypeScript 中的配置

Jest 是一个 JavaScript 测试框架,没有类型驱动的编程是很难达到高效和准确性的。TypeScript 是一个 JavaScript 的超集,它提供了完善的类型系统和更好的 IDE 提示,这使得 TypeScript 在我们的开发中越来越受欢迎。在 Jest 中使用 TypeScript 的配置可以让我们的测试更加健壮和可靠,本文将对此进行详细讲解。

环境准备

首先,我们需要安装 Jest 和 TypeScript:

然后,在你的 package.json 中添加以下配置:

这段代码会自动运行 Jest,同时添加了一个 ts-jest 的 preset。下面我们来详细解释一下这段代码。

首先,我们需要在 jest 内的配置对象中添加 preset 属性,设为 "ts-jest",这是一个可以为 Jest 提供 TypeScript 支持的 preset。这个 preset 可以让 Jest 使用 TypeScript 编写的测试文件。

其次,我们在 package.jsonscripts 对象中添加了一个 test 属性。当我们运行 npm test 命令时,它会自动执行 Jest。

配置基础

现在,我们已经设置了 Jest 的 TypeScript 配置,让我们来编写一个基本的测试用例,用以验证我们的环境是否正确配置。

这段代码非常简单,意思就是验证 1 + 2 是否等于 3。当代码运行成功时,Jest 会自动将测试结果输出到控制台,形如下面的输出:

配置选项

Jest 支持许多配置选项,让我们来看看其中几个比较重要的选项。

transform

这个选项主要是告诉 Jest 触发测试之前需要先将 TypeScript 文件编译成 JavaScript。我们可以使用官方预设的 ts-jest 或者 babel-jest 来将 TypeScript 文件编译为 JavaScript 。 如果需要使用 tsconfig.json 中的配置,ts-jest 会自动发现并使用。

testRegex

这个选项主要是告诉 Jest 什么样的文件应该被测试。默认情况下,Jest 会查找包含 .test.js.spec.js 的 JavaScript 文件。但是,如果我们使用 TypeScript 编写测试用例,我们需要使用正则表达式来告诉 Jest 查找 .test.ts.spec.ts 文件:

moduleNameMapper

这个选项允许我们在测试中模拟模块。如果我们在测试中需要模拟一些模块,我们需要在 moduleNameMapper 中进行设置:

上面的设置意味着任何以 @/ 开头的变量都会被转换成 src/ 文件夹下的路径。

globals

Jest 的 globals 选项允许我们在测试中访问全局变量。我们可以在 globals 选项中告诉 Jest 我们要使用哪些全局变量:

这个例子中,选项 TS_JEST 中的 diagnostics 表示是否输出更多的 TypeScript 诊断信息。 同时,tsConfig 指定了特定的 TypeScript 配置文件路径。

总结

在 Jest 中使用 TypeScript 可以增加我们对代码的信任度以及测试的健壮性。在上述几个选项的帮助下,我们可以很方便地让 Jest 支持 TypeScript。通过支持 TypeScript,我们可以在保证代码健壮性和可维护性的同时提高我们的开发效率。

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


纠错
反馈