Jest 是一个令人愉快的 JavaScript 测试框架,专注于 简洁明快。官网地址
官网示例
安装
# 初始化一个 packjson
npm init
# 安装 jest
npm install --save-dev jest
# 推荐 cnpm install --save-dev jest
被测函数
// sum.js 文件
function sum(a, b) {
return a + b;
}
module.exports = sum;
测试代码
// sum.test.js 文件
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
package.json 添加命令
{
"scripts": {
"test": "jest"
}
}
执行结果
PS E:\Books\XTesting\js-test> npm run test
> js-test@1.0.0 test E:\Books\XTesting\js-test
> jest
PASS unit/sum.test.js
√ adds 1 + 2 to equal 3 (2 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.325 s, estimated 1 s
Ran all test suites.
试用
被测函数 - 冒泡排序
// sort.js 文件
function bubbleSort(arr = []) {
if (arr.length < 2) {
return arr;
}
/**
* 实现冒泡排序
*/
let length = arr.length;
// 1.排序循环次数
for (let i = 0; i < length; i++) {
// 2.比较次数
for (let j = 0; j < length - 1 - i; j++) {
let middle = "";
if (arr[j] > arr[j + 1]) {
middle = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = middle;
}
}
}
return arr;
}
module.exports = {
bubbleSort,
};
测试代码
// sort.test.js 文件
const { bubbleSort } = require("../src/sort.js");
test("sort [3,4,5,1,2,3]", () => {
expect(bubbleSort([3, 4, 5, 1, 2, 3])).toStrictEqual([1, 2, 3, 3, 4, 5]);
});
执行结果
PS E:\Books\XTesting\js-test> npm run test
> js-test@1.0.0 test E:\Books\XTesting\js-test
> jest
PASS unit/sort.test.js
PASS unit/sum.test.js
Test Suites: 2 passed, 2 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 0.47 s, estimated 1 s
Ran all test suites.
目录
目前看来 Jest 会扫描工程下文件名包含 test 的 js 文件。
目录