jest基础使用(代码片段)

GoldenaArcher GoldenaArcher     2023-01-23     761

关键词:

Jest 基础使用

Jest 的安装与运行

Jest 可以通过 npm 进行开发安装:

# 指定安装 jest v23.6,不添加 @23.6.0 会安装最新版本
$ npm install --save-dev jest@23.6.0

注意这里使用了 --save-dev,指的是只有在开发环境下才会下载依赖包,package.jsondevDependencies 也会想对更新:


  // 省略其他
  "devDependencies": 
    "jest": "^23.6.0"
  

一旦依赖包安装成功,就可以使用 npx jest 去运行测试文件。

没有测试文件的情况下就会报错。

直接使用 npm 运行文件 Jest 需要在 package.json 中进行配置:


  // 省略其他
  "scripts": 
    "test": "jest"
  

编写第一个测试文件

Jest 认知的文件格式为:文件名.test.js,如:helloWorld.test.js:

const greeting = () => 'hello world';

describe('greeting()', () => 
  it('greeting', () => 
    expect(greeting()).toBe('hello world');
  );
);

其中:

  • describe() 声明了这是一个测试凹状,是一组测试
  • it() 声明了一个测试
  • assertion 创建了一个断言
  • toBe() 则是判断返回值是否与断言相等

运行结果:

$ npm test
...
 PASS  ./greeting.test.js
  greeting()
    ✓ greeting (3ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.83s
Ran all test suites.

自动运行测试 及 测试覆盖率

运行测试可以用 --watchAll 作为旗帜:

# 加上关键字全局搜索
$ npx jest --watchAll

这时候,npm 就会监视所有文件的变化,包括实现的文件和测试文件后,重新运行测试。

开启测试覆盖率可以用 --coverage 旗帜,如:

$ npm run test -- --coverage --coverageReporters=text

 PASS  ./index.test.js
  greeting()
    ✓ returns "greeting" for greeting (3ms)

----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |       75 |       50 |      100 |    66.67 |                   |
 index.js |       75 |       50 |      100 |    66.67 |                 3 |
----------|----------|----------|----------|----------|-------------------|

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.121s, estimated 1s
Ran all test suites.

运行多个测试

只需要在 describe() 作用域中增加多个 it() 声明即可。

const greeting = () => 'hello world';

describe('greeting()', () => 
  it('greeting', () => 
    expect(greeting()).toBe('hello world');
  );
);

jest使用指南--基础篇(代码片段)

Jest使用指南--基础篇#jestJest基础Jest语法descriptionDescribe,一种用于包含一个或多个相关测试的Jest方法。每次在开始为功能编写新的测试套件时,都将其包装在describe块中。description('一组测试的名称',()=> //测试的方法... 查看详情

前端自动化测试框架jest中的mock(代码片段)

...test、expect、toBe三个方法,在之前我们也介绍了Jest的基础使用、Jest的简单配置、Jest中的匹配器(matchers)、Jest命令行工具的使用和异步代码的测试、Jest中的钩子函数及作用域,今天我们来说说Jest中的Mock。函数... 查看详情

jest使用指南--ts文件篇(代码片段)

...工具方法进行单测,比对返回的数据结构,包括基础数据类型、对象、数组、函数异步方法这部分直接参考测试异步代码·Jest用到的api介绍expect.assertions(1)expect.assertions(number)验证在测试过程中是否调用了一定数量的断言... 查看详情

jest使用指南--ts文件篇(代码片段)

...工具方法进行单测,比对返回的数据结构,包括基础数据类型、对象、数组、函数异步方法这部分直接参考测试异步代码·Jest用到的api介绍expect.assertions(1)expect.assertions(number)验证在测试过程中是否调用了一定数量的断言... 查看详情

jest在已有项目中的安装与使用(代码片段)

简单的jest使用配置:npminit-ynpmijest@24.8.0-Dnpxjest--init生成初始化配置一个index文件,里面可以写入一些方法,作为测试这个jest.config.js是自动生成的!!!!!index.test.js就是些测试用例的文件。jest... 查看详情

javascript使用chrome无头捕获dom元素截图jest截图(代码片段)

查看详情

text如何在项目创建后使用jest实施vue单元测试?(代码片段)

查看详情

jest使用指南--tsx组件篇(代码片段)

Jest使用指南--tsx组件篇#jest首先考虑一下,React组件我们需要测试哪些东西呢?React组件的render结果是一个组件树,并且整个树最终会被解析成一个纯粹由HTML元素构成的树形结构React组件可以拥有state,且state的变化... 查看详情

jest使用指南--mock篇(代码片段)

Jest使用指南--Mock篇#jestJestMock为什么会用到Mock?Mock能帮我们解决什么问题?在项目中,一个模块的方法内常常会去调用另外一个模块的方法。在单元测试中,我们可能并不需要关心内部调用的方法的执行过程和结... 查看详情

jest中的mock,jest.fn()jest.spyon()jest.mock()(代码片段)

...调用即可,甚至会指定该函数的返回值。此时,使用Mock函数是十分有必要。Mock函数提供的以下三种特性,在我们写测试代码时十分有用:捕获函数 查看详情

jest使用指南--mock篇(代码片段)

Jest使用指南--Mock篇#jestJestMock为什么会用到Mock?Mock能帮我们解决什么问题?在项目中,一个模块的方法内常常会去调用另外一个模块的方法。在单元测试中,我们可能并不需要关心内部调用的方法的执行过程和结... 查看详情

jest忽略某些jest文件(代码片段)

testPathIgnorePatterns:["tests/a"]提交代码时候,只对修改文件及其对应的jest文件进行校验"lint-staged":"*.js":["eslint","jest--bail--findRelatedTests"] 查看详情

解决jest处理es模块(代码片段)

解决jest处理es模块问题场景项目使用jest进行测试时,当引入外部库是es模块时,jest无法处理导致报错.TestsuitefailedtorunJestencounteredanunexpectedtokenThisusuallymeansthatyouaretryingtoimportafilewhichJestcannotparse,e.g.it'snotplainJavaScript.Bydefault,ifJestseesa... 查看详情

调用eval的jest测试函数(代码片段)

我有一个使用vue-cli3.0创建的VueTS项目。这是我将测试的功能: publichopJavascript(url:string) eval(url); 这是我使用Jest框架的测试函数: test('navigationusingjavascript',()=> consturl="someurl"; hopJavascript(url);&#... 查看详情

jest在已有项目中的安装与使用(代码片段)

简单的jest使用配置:npminit-ynpmijest@24.8.0-Dnpxjest--init生成初始化配置一个index文件,里面可以写入一些方法,作为测试这个jest.config.js是自动生成的!!!!!index.test.js就是些测试用例的文件。jest... 查看详情

jest在已有项目中的安装与使用(代码片段)

简单的jest使用配置:npminit-ynpmijest@24.8.0-Dnpxjest--init生成初始化配置一个index文件,里面可以写入一些方法,作为测试这个jest.config.js是自动生成的!!!!!index.test.js就是些测试用例的文件。jest... 查看详情

javascriptnuxt测试jest(代码片段)

查看详情

markdownpuppeteer和jest-命令(代码片段)

查看详情