推荐答案
// www.javascriptcn.com code example
// 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);
});
test('adds -1 + 1 to equal 0', () => {
expect(sum(-1, 1)).toBe(0);
});本题详细解读
1. 安装 Jest
首先,确保你已经安装了 Jest。如果还没有安装,可以通过以下命令进行安装:
npm install --save-dev jest
2. 创建测试文件
在项目中创建一个测试文件,通常命名为 *.test.js 或 *.spec.js。例如,sum.test.js。
3. 编写测试用例
在测试文件中,使用 test 或 it 函数来定义测试用例。每个测试用例包含一个描述字符串和一个回调函数,回调函数中包含实际的测试逻辑。
test('description', () => {
// 测试逻辑
});4. 使用 expect 进行断言
在测试用例中,使用 expect 函数来断言某个值是否符合预期。expect 通常与匹配器(如 toBe、toEqual 等)一起使用。
expect(actualValue).toBe(expectedValue);
5. 运行测试
在 package.json 中添加以下脚本:
"scripts": {
"test": "jest"
}然后通过以下命令运行测试:
npm test
6. 测试覆盖率
Jest 还支持生成测试覆盖率报告。可以通过以下命令生成覆盖率报告:
npm test -- --coverage
7. 异步测试
对于异步代码,Jest 提供了多种处理方式,如使用 async/await、Promise 或 done 回调。
test('async test', async () => {
const result = await someAsyncFunction();
expect(result).toBe(expectedValue);
});8. Mock 函数
Jest 允许你创建 mock 函数来模拟某些行为,这在测试依赖外部服务或复杂逻辑时非常有用。
const mockFn = jest.fn(); mockFn(); expect(mockFn).toHaveBeenCalled();
9. 测试生命周期钩子
Jest 提供了 beforeEach、afterEach、beforeAll 和 afterAll 等钩子函数,用于在测试前后执行一些操作。
beforeEach(() => {
// 在每个测试之前执行
});
afterEach(() => {
// 在每个测试之后执行
});通过这些步骤,你可以在 JavaScript 项目中使用 Jest 编写和运行测试用例,确保代码的质量和可靠性。