Jest 是一个由 Facebook 开发的 JavaScript 测试框架,用于编写高效、可靠和可维护的测试。它与 React 应用程序的测试非常搭配,并且在其他 JavaScript 应用程序中也非常适用。本文将介绍 Jest 的主要功能,如何使用 Jest 编写测试,并提供一些最佳实践和技巧。

Jest 的特点

快速的测试执行

Jest 通过并行执行测试来提高测试速度。它还利用了缓存测试结果和智能重新运行测试的策略,以减少不必要的测试执行。此外,Jest 还支持在代码更改时只运行受影响的测试,这样可以节省更多的时间。

简单的配置

Jest 的默认配置非常合理,可以满足大多数项目的需求。如果需要更改配置,Jest 的配置选项非常直观和易于理解。此外,Jest 还提供了许多插件和扩展,以便在不同的场景下扩展和自定义配置。

强大的断言库

Jest 内置了一个强大的断言库,可以轻松地编写和管理断言。它提供了许多通用的断言,如 toBe()、toEqual()、toBeTruthy()、toBeFalsy() 等,也可以轻松地创建自定义断言。

隔离

测试程序拥有自己独立的进程 以最大限度地提高性能。

自动化的 Mocking

Jest 提供了一个简单而强大的 Mocking 框架,可以轻松地 Mock 任何 JavaScript 模块或库。它还支持自动 Mocking,可以自动 Mock 所有依赖项和模块,从而使测试更简单和可靠。

与 React 集成

Jest 与 React 应用程序的测试非常搭配,并提供了一些特定于 React 的功能。例如,它支持测试 React 组件和 Hook,并提供了一个测试工具箱(Testing Library for React),可以轻松地编写可读性强的测试。

如何在 TS 中使用 Jest

安装 Jest

推荐按照官网安装 Jest

要使用 Jest,首先需要将其安装为项目的依赖项。可以使用 npm 或 yarn 来安装 Jest:

bashCopy code

TS 中使用 Jest

环境搭建

npm install --save-dev @babel/preset-typescript
  在 babel.config.js 文件中 配置
  module.exports = {
    presets: [
      ['@babel/preset-env', {targets: {node: 'current'}}],
      '@babel/preset-typescript',
    ],
  };

在 tsconfig.json 中配置:

"compilerOptions": {
  "types": ["jest"]
  }

在 packge.json 中配置:

"scripts": {  
    "test": "jest"  
    // "test": "jest --coverage"
  }

编写测试

Jest 使用类似于 Mocha 的语法来编写测试。测试代码通常位于与源代码相同的目录中,并且文件名以 .test.js 或 .spec.js 结尾。

以下是两个简单的示例测试:

test('adds 1 + 2 to equal 3', () => {   expect(1 + 2).toBe(3); });

在这个例子中,我们使用 test() 函数来定义一个测试用例,它接受两个参数:测试用例的描述和测试代码的回调函数。

import { add } from "./add";  
  // Describe the test suite  
  describe('add function', () => {  
    // Test case 1  
    it('should return the sum of two numbers', () => {  
      expect(add(1, 2)).toBe(3);  
    });  
    
    // Test case 2  
    it('should return NaN if one of the arguments is not a number', () => {  
      expect(add(1, '2' as any)).toBe("12");  
    });  
  });

结语

好了,今天的内容就到分享这里啦,很享受与大家一起学习,沟通交流问题,如果喜欢的话,请为我点个赞吧 !