赞
踩
指对软件中的最小可测试单元进行检查和验证
长期以来,前端开发的单元测试并不是在前端的开发过程中所必须的,也不是每个前端开发工程师所注意和重视的,甚至扩大到软件开发过程中单元测试这一环也不是在章程上有书面规定所要求的。但是随着每个工程的复杂化、代码的高复用性要求和前端代码模块之间的高内聚低耦合的需求,前端工程中的单元测试流程就显得很有其必要。
首先我们要明确测试是什么:
为检测特定的目标是否符合标准而采用专用的工具或者方法进行验证,并最终得出特定的结果。
对于前端开发过程来说,这里的特定目标就是指我们写的代码,而工具就是我们需要用到的测试框架(库)、测试用例等。检测处的结果就是展示测试是否通过或者给出测试报告,这样才能方便问题的排查和后期的修正。
单元测试的意义
对于现在的前端工程,一个标准完整的项目,测试是非常有必要的。很多时候我们只是完成了项目而忽略了项目测试的部分,测试的意义主要在于下面几点:
原则
介绍
Jest是Facebook开源的一套JavaScript测试框架, 它集成了断言、JSDom、覆盖率报告等开发者所需要的所有测试工具。
官方简介:一个令人愉快的javascript测试框架。 我的理解是,不用加班改bug了,可以提前下班.
安装
- # 项目中使用
- yarn init -y
- yarn add --dev jest
- # 或者全局安装,随时随地使用
- yarn global add jest
hello,word
- // hello.js
- module.exports = function(){
- return "hello world";
- }
- // hello.test.js
- const hello = require('../hello');
-
- it('should ', () => {
- expect(hello()).toBe('hello world');
- });
基础知识
测试函数 test/it
- test("测试用列描述信息",()=>{})
- // or
- it("测试用例描述信息",()=>{})
断言函数
测试运行结果是否与我们预期结果一致,断言函数用来验证结果是否正确
- exspect(运行结果).toBe(期望的结果);
- //常见断言方法
- expect({a:1}).toBe({a:1})//判断两个对象是否相等
- expect(1).not.toBe(2)//判断不等
- expect({ a: 1, foo: { b: 2 } }).toEqual({ a: 1, foo: { b: 2 } })// 判断是否为两个相同的对象
- expect(n).toBeNull(); //判断是否为null
- expect(n).toBeUndefined(); //判断是否为undefined
- expect(n).toBeDefined(); //判断结果与toBeUndefined相反
- expect(n).toBeTruthy(); //判断结果为true
- expect(n).toBeFalsy(); //判断结果为false
- expect(value).toBeGreaterThan(3); //大于3
- expect(value).toBeGreaterThanOrEqual(3.5); //大于等于3.5
- expect(value).toBeLessThan(5); //小于5
- expect(value).toBeLessThanOrEqual(4.5); //小于等于4.5
- expect(value).toBeCloseTo(0.3); // 浮点数判断相等
- expect('Christoph').toMatch(/stop/); //正则表达式判断
- expect(['one','two']).toContain('one'); //不解释

分组函数 describe
- describe("关于每个功能的测试信息",()=>{
- // 不同的测试单元测试
- test()
- it()
- })
常见命令
- "nocache": "jest --no-cache", //清除缓存
- "watch": "jest --watchAll", //实时监听
- "coverage": "jest --coverage", //生成覆盖测试文档
- "verbose": "npx jest --verbose" //显示测试描述
为什么使用 vue-test-utils
vue-test-utils是vue官方的单元测试框架,提供了一系列非常方便的工具,使我们更轻松地为vue构建的应用来编写单元测试。主流的JavaScript测试运行器有很多,但vue-test-utils都能支持。它是测试运行器无关的。
为什么选择jest
因为 jest 包含了 karma + mocha + chai + sinon 的所有常用功能,零配置开箱即用
Vue官方是这样描述的:
Jest 是功能最全的测试运行器。它所需的配置是最少的,默认安装了 JSDOM,内置断言且命令行的用户体验非常好。不过你需要一个能够将单文件组件导入到测试中的预处理器。我们已经创建了 vue-jest 预处理器来处理最常见的单文件组件特性,但仍不是 vue-loader 100% 的功能。
vue-test-utils在Vue和Jest之间提供了一个桥梁,暴露出一些接口,让我们更加方便地通过Jest为Vue应用编写单元测试
安装
Vue-cli中使用
单独使用
安装: npm install --save-dev jest @vue/test-utils
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。