📅  最后修改于: 2023-12-03 15:27:09.088000             🧑  作者: Mango
Jest 是一个著名的 JavaScript 测试框架,它具有简单易用,速度快,可扩展性强等诸多优点。本文将向你介绍如何使用 Jest 进行测试。
安装 Jest 非常简单,只需要在命令行中运行以下命令:
npm install --save-dev jest
我们建议把 Jest 添加到 devDependencies
中,因为它是一个开发工具,不应该被部署到生产环境中。
下一步我们需要创建一个测试文件。通常我们将测试文件存放在与被测试的代码相同的目录中,只是文件名以 .test.js
或 .spec.js
结尾。
下面是一个简单的测试文件示例:
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
这个测试文件引入了一个名为 sum
的模块,并测试了它的一个函数。测试的方式非常简单:我们期望 sum(1, 2)
的返回值应该等于 3
。如果不等于,测试就会失败。
运行测试也非常简单,只需要在命令行中运行 npx jest
命令就行了。Jest 会查找项目中所有以 .test.js
或 .spec.js
结尾的文件,并对它们进行测试。
当测试成功时,输出如下:
PASS ./sum.test.js
✓ adds 1 + 2 to equal 3 (5 ms)
如果测试失败,则输出如下:
FAIL ./sum.test.js
✕ adds 1 + 2 to equal 3 (6 ms)
● adds 1 + 2 to equal 3
expect(received).toBe(expected) // Object.is equality
Expected: 4
Received: 3
4 |
5 | test('adds 1 + 2 to equal 4', () => {
> 6 | expect(sum(1, 2)).toBe(4);
| ^
7 | });
at Object.toBe (sum.test.js:6:23)
在测试中,我们可以使用 Jest 提供的丰富的断言库来验证我们的代码。下面是一些常用的断言:
这是最基本的断言,它用来验证一个值是否等于另一个值。
test('two plus two is four', () => {
expect(2 + 2).toBe(4);
});
这个断言和 expect
配合使用,用来验证某个值不应该等于另一个值。
test('adding positive numbers is not zero', () => {
for (let a = 1; a < 10; a++) {
for (let b = 1; b < 10; b++) {
expect(a + b).not.toBe(0);
}
}
});
这个断言用来验证两个对象是否相等。
test('object assignment', () => {
const data = {one: 1};
data['two'] = 2;
expect(data).toEqual({one: 1, two: 2});
});
这个断言用来验证一个数组或类数组是否包含某个元素。
test('the shopping list has milk on it', () => {
const shoppingList = [
'diapers',
'kleenex',
'trash bags',
'paper towels',
'milk'
];
expect(shoppingList).toContain('milk');
});
Jest 是一个简单易用的 JavaScript 测试框架,它可以帮助我们快速验证代码的正确性,从而保证代码质量。在实际开发中,我们应该养成写测试的好习惯,让测试成为我们开发的一部分。