

使用jest对TypeScript进行单元测试
source link: https://xmanyou.com/using-jest-for-typescript-unit-testing/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用jest对TypeScript进行单元测试
关于jest
jest是Facebook开源的一个js测试框架。
对于纯js项目,特别是node.js项目,几乎是开箱即用,非常简单。
可以使用npm或者yarn来安装:
npm install --save-dev jest
2. 初始化jest环境
对于新工程,可以执行以下命令来创建一个配置文件来初始化jest的环境:
jest --init
该命令执行完毕后,会询问一些问题来帮忙创建配置文件,并测试命令到package.json中。
3. 创建测试用例
默认情况下,jest会把项目中所有的*.test.js文件当做测试用例。
3.1 官方示例
比如,有一个求和的模块sum.js,代码如下:
function sum(a, b) {
return a + b;
}
module.exports = sum;
创建一个sum.test.js作为sum模块的测试用例:
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
jest
或者如果你已经设置jest为默认测试工具的话:
npm run test
3.2. 示例解析
在这个示例中,
- sum.test.js 是测试模块,一个测试模块可以包含多个测试用例
- test 表示一个单元测试用例
- test的第一个参数,是这个测试用例的描述
- test的第二个参数,是具体的测试方法
- expect 方法用于判断传入的值是否满足预期结果,这里的toBe(3)表示预期结果为3,如果传入的值与预期一致,则该用例测试通过,否则则测试失败。
3.3. jest的基本模块
除了test方法以外,还有一些其他模块:
- 全局设置 beforeAll/afterAll
- 结果判断 matcher,除了示例中的toBe,还有很多其他的快捷判断方法
- 模拟接口和模拟数据 mock,通过模拟接口可以编写所需的测试数据而不需要直接从实际运行环境中获取数据进行测试
更多命令和用法可以参考jest的官方文档,需要特别注意的是异步方法的测试用例的编写。
4. 搭建typescript测试环境
对于TypeScript项目,还需要做一些配置才可以使用jest。
jest并不直接支持TypeScript,但是jest允许通过代码转换器(Code Transformer)将源码解析为js代码然后交给jest进行测试。
对于TypeScript,jest官方提供了两个方案:
- Babel
- ts-jest
这里介绍一下ts-jest,由于不依赖Babel等,适用性更广泛一些,github地址如下:
https://jestjs.io/docs/getting-started#using-typescript-via-ts-jest
4.1. 安装 ts-jest和@type/jest
npm i -D ts-jest @types/jest
4.2. 配置
- 1). jest.config.ts
preset: "ts-jest",
transform: { "^.+\\.ts?$": "ts-jest" },
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
- 2). ts-config.json
"types": [
"jest"
],
4.3. 编写*.test.ts测试模块
设置完毕,就可以使用ts来编写测试用例,测试ts代码了。
阿斌
Read more posts by this author.
Recommend
-
36
简介 日常开发中, 测试是不能缺少的. Go 标准库中有一个叫做 testing 的测试框架, 可以用于单元测试和性能测试. 它是和命令 go test 集成使用的. 测试文件是...
-
18
利用 Jest 为 React 组件编写单元测试loveky前端小学生 https://loveky.github.io本文首发...
-
22
使用Jest进行前端单元测试2021-03-304 分钟对于逻辑复杂、迭代频繁的前端项目,进行单元测试很有必要。 这样可以节省大量E2E测试的时间,保证代码的可靠性,量化评估研发团队、测试团队的产出。 常见的前端单元测试框架,有Mocha、Jasmi...
-
14
原文地址:https://reflectoring.io/unit-...编写好的单元测试可以被看成一个很难掌握的艺术。但好消息是支持单元测试的机制很容易学习。本文给你提供在Spring Boot 应用程序中...
-
18
Jest 配置与 React Hook 单元测试教程中国科学院大学 计算机应用技术硕士前言关于单元测试与 FIRST 原则的介绍,我在另一篇基于 Jasmine 和 Karma 的单...
-
9
Jest 单元测试疑难点入门介绍概念及思考的过程,不提供代码(具体代码写法可参考
-
9
GoogleTest是Google开源的一个测试框架,使用这个框架我们可以很方便的对我们的项目进行测试; 本文讲述了GoogleTest的基本使用; C++中使用GoogleTest进行单元测试
-
4
Jest:给你的 React 项目加上单元测试 作者:前端西瓜哥 2022-10-26 08:00:49 单元测试(Unit Testing),指的是对程序中的模块(最小单位)进行检查和验证。比如一个函数、一个类、一个组件,它们都是模块。
-
5
为什么使用Mock进行单元测试?从功能开发完成的定义来看,至少包括:代码本身、文档及单元测试。而往往在实际开发中,由于需求的不停的变化,导致文档及单元测试是开发过程中直接被忽略的内容。反观优秀的开源项目,在全球...
-
9
本教程假定您使用 PHP 8.1 或 PHP 8.2。您将学习如何编写简单的单元测试以及如何下载和运行 PHPUnit. PHPUnit 10 的文档可以在
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK