关键词:
Jest 基础使用
Jest 的安装与运行
Jest 可以通过 npm 进行开发安装:
# 指定安装 jest v23.6,不添加 @23.6.0 会安装最新版本
$ npm install --save-dev jest@23.6.0
注意这里使用了 --save-dev
,指的是只有在开发环境下才会下载依赖包,package.json
中 devDependencies
也会想对更新:
// 省略其他
"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... 查看详情