Jest 是一个流行的 JavaScript 测试框架,它提供了一系列强大的功能来测试 JavaScript 应用程序和库。本文将介绍如何使用 Jest 来测试 JS 库。
安装 Jest
首先需要全局安装 Jest:
npm install -g jest
或者可以将 Jest 安装为开发依赖项:
npm install jest --save-dev
创建测试
在开始编写测试之前,需要确保测试代码与被测代码在不同的目录下。这是因为在编写测试代码时,我们要使用被测代码的 API,而不能修改被测代码。通常情况下,我们会在项目的根目录下创建一个名为 __tests__
的文件夹,然后在这个文件夹下创建和被测代码一一对应的文件,文件名以 .test.js
结尾。例如,如果被测代码在 src/index.js
中,则测试代码应该在 __tests__/index.test.js
中。
现在,让我们来创建一个简单的测试,测试一个函数是否可以正确地将两个数字相加。在 __tests__/math.test.js
中添加以下代码:
const { sum } = require('../src/math'); test('addition', () => { expect(sum(1, 2)).toBe(3); });
这段代码将导入一个名为 sum
的函数,它将两个数字相加。然后,我们定义了一个测试,它期望 sum(1, 2)
的结果应该是 3
。
运行测试
现在,我们已经编写好了我们的第一个测试,现在可以使用 Jest 运行测试。可以运行单个测试文件,也可以运行整个测试套件。运行以下命令来运行测试:
jest __tests__/math.test.js
或者,可以运行整个测试套件:
jest
Jest 将扫描项目中所有以 .test.js
结尾的文件,并执行它们。
测试 API
Jest 提供了一些用于测试的 API,下面是其中的一些:
test(name, fn)
定义一个测试用例。name
是测试用例的名称,fn
是一个函数,包含测试代码。例如:
test('addition', () => { expect(sum(1, 2)).toBe(3); });
expect(value)
用于指定被测试代码的期望输出。例如:
expect(sum(1, 2)).toBe(3);
toBe(value)
测试是否等于一个值。例如:
expect(sum(1, 2)).toBe(3);
toEqual(value)
测试是否等于一个值,但允许比较对象和数组的内容。例如:
expect(someArray).toEqual(expectedArray);
toBeTruthy()
测试值是否为 true。例如:
expect(value).toBeTruthy();
toBeFalsy()
测试值是否为 false。例如:
expect(value).toBeFalsy();
toBeGreaterThan(number)
测试值是否大于一个给定的数。例如:
expect(value).toBeGreaterThan(3);
toBeLessThan(number)
测试值是否小于一个给定的数。例如:
expect(value).toBeLessThan(5);
toBeCloseTo(number, numDigits)
测试一个浮点数是否在一个指定的精度范围内。例如:
expect(value).toBeCloseTo(0.3, 5);
更多 API 请参考 Jest 官方文档。
Jest 的配置文件
Jest 支持通过配置文件进行配置。你可以在项目根目录下创建一个名为 jest.config.js
的文件来配置 Jest。
例如,我们可以将以下配置添加到 jest.config.js
中:
module.exports = { testEnvironment: 'node', testPathIgnorePatterns: ['/node_modules/', '/__tests__/fixtures/'], collectCoverage: true, collectCoverageFrom: ['src/**/*.js'], coverageDirectory: 'coverage', coverageReporters: ['text', 'html'], };
这个配置文件用于配置 Jest 的环境、测试文件排除规则、代码覆盖率等。具体配置请参考 Jest 配置文件。
结论
Jest 是一个非常强大的 JavaScript 测试框架,可以轻松地为 JavaScript 应用程序和库编写测试。本文简要介绍了如何使用 Jest 来测试 JS 库,并简单介绍了 Jest 的一些 API 和配置文件。
在实际开发中,编写良好的测试用例是确保代码质量和可维护性的重要部分。为了使我们的代码更加稳定和可靠,我们应该养成编写测试用例的好习惯。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67391d33317fbffedf153767