如何使用 Jest 测试 JavaScript 应用程序?

Jest 是一款由 Facebook 开发的 JavaScript 测试框架,它不仅易于上手,而且拥有丰富的功能和插件。本文将介绍 Jest 的基本用法和注意事项,帮助大家快速学习如何使用 Jest 测试 JavaScript 应用程序。

环境搭建

首先,我们需要安装 Jest。可以使用 npm 进行安装:

安装完成后,在 package.json 中配置 Jest 的测试脚本:

{
  "scripts": {
    "test": "jest"
  }
}

此后,运行 npm test 命令即可运行 Jest 测试。

测试用例编写

Jest 是一个测试框架,用于编写单元测试。下面,我们将编写一个简单的测试用例,以此来介绍 Jest 的基本用法。

假设我们的 JavaScript 应用程序中有一个函数 add,用于计算两个数的和。我们可以创建一个名为 add.test.js 的测试文件,编写如下的测试用例:

function add(x, y) {
  return x + y;
}

test('addition', () => {
  expect(add(1, 2)).toBe(3);
});

以上代码的含义是:定义一个函数 add,然后编写一个测试用例,用于验证 add 函数是否正确计算两个数的和。测试用例中使用了 Jest 提供的 expecttoBe 函数,其中 expect 用于比较两个值是否相等,toBe 用于比较两个值是否完全相等。

运行测试用例,可以看到测试结果:

测试通过,表示 add 函数的计算结果正确。

Jest 的常用函数

Jest 提供了丰富的函数,用于编写测试用例。下面,我们将介绍 Jest 的一些常用函数和用法。

test(name, fn)

定义一个测试用例。name 为测试用例的名称,fn 为测试用例的函数体。

test('test name', () => {
  // 测试用例的函数体
});

describe(name, fn)

定义一个测试套件。name 为测试套件的名称,fn 为测试套件的函数体,用于包含多个测试用例。

describe('test suite name', () => {
  test('test case 1', () => {
    // 测试用例的函数体
  });
  test('test case 2', () => {
    // 测试用例的函数体
  });
});

expect()

用于比较两个值是否相等。常用的有以下几个函数:

toBe(expected)

比较两个值是否完全相等。

expect(1 + 2).toBe(3);

toEqual(expected)

比较两个对象是否相等。

expect({a: 1, b: 2}).toEqual({a: 1, b: 2});

toThrow(expected?)

判断是否抛出了异常。

function foo() {
  throw new Error('error');
}
expect(foo).toThrow();

beforeEach(fn)

在每个测试用例之前执行。常用于在测试前进行一些准备工作。

let value;
beforeEach(() => {
  value = 1;
});
test('test name', () => {
  expect(value).toBe(1);
});

afterEach(fn)

在每个测试用例之后执行。常用于在测试后进行一些清理工作。

let value;
afterEach(() => {
  value = 0;
});
test('test name', () => {
  expect(value).toBe(1);
});

总结

本文介绍了 Jest 的基本用法和注意事项,以及常用函数的用法。通过学习本文,读者可以了解如何使用 Jest 测试 JavaScript 应用程序,提高代码质量和可维护性。

参考

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65acf893add4f0e0ff68ad29