当前位置: 首页 > wzjs >正文

接口网站开发优化工具箱下载

接口网站开发,优化工具箱下载,做芯片外贸生意上哪个网站,网站如何做IPV6支持实战:如何开始单元测试 1.安装依赖 npm install --save-dev jest2.简单的例子 首先,创建一个 sum.js 文件 ./sum.js function sum(a, b) {return a b; }module.exports sum;创建一个名为 sum.test.js 的文件,这个文件包含了实际测试内…

实战:如何开始单元测试

1.安装依赖

npm install --save-dev jest

2.简单的例子

首先,创建一个 sum.js 文件

./sum.js

function sum(a, b) {return a + b;
}module.exports = sum;

创建一个名为 sum.test.js 的文件,这个文件包含了实际测试内容:

./test/sum.test.js

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

将下面的配置部分添加到你的 package.json 里面

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

运行 npm run test ,jest 将打印下面这个消息,如下图所示:

fileOf7174.png

3.不支持部分 ES6 语法

nodejs 采用的是 CommonJS 的模块化规范,使用 require 引入模块;而 import 是 ES6 的模块化规范关键字。想要使用 import,必须引入 babel 转义支持,通过 babel 进行编译,使其变成 node 的模块化代码

如以下文件改写成 ES6 写法后,运行 npm run test将会报错

./sum.js

export function sum(a, b) {return a + b;
}

./test/sum.test.js

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

报错

fileOf7174.png

为了能使用这些新特性,我们就需要使用 babel 把 ES6 转成 ES5 语法

解决办法

安装依赖

npm install --save-dev @babel/core @babel/preset-env

根目录加入.babelrc

{   "presets": ["@babel/preset-env"] }

再次运行 npm run test ,问题解决

fileOf7174.png

原理

jest 运行时内部先执行( jest-babel ),检测是否安装 babel-core,然后取 .babelrc 中的配置运行测试之前结合 babel 先把测试用例代码转换一遍然后再进行测试

4.测试 ts 文件

jest 需要借助 .babelrc 去解析 TypeScript 文件再进行测试

安装依赖

npm install --save-dev @babel/preset-typescript

**改写 **.babelrc

{   "presets": ["@babel/preset-env", "@babel/preset-typescript"] }

为了解决编辑器对 jest 断言方法的类型报错,如 test、expect 的报错,你还需要安装

npm install --save-dev @types/jest

./get.ts

/*** 访问嵌套对象,避免代码中出现类似 user && user.personalInfo ? user.personalInfo.name : null 的代码*/
export function get<T>(object: any, path: Array<number | string>, defaultValue?: T) : T {const result = path.reduce((obj, key) => obj !== undefined ? obj[key] : undefined, object);return result !== undefined ? result : defaultValue;
}

./test/get.test.ts

import { get } from './get';test('测试嵌套对象存在的可枚举属性 line1', () => {expect(get({id: 101,email: 'jack@dev.com',personalInfo: {name: 'Jack',address: {line1: 'westwish st',line2: 'washmasher',city: 'wallas',state: 'WX'}}}, ['personalInfo', 'address', 'line1'])).toBe('westwish st');
});

运行 npm run test

fileOf7174.png

5.持续监听

为了提高效率,可以通过加启动参数的方式让 jest 持续监听文件的修改,而不需要每次修改完再重新执行测试用例

改写 package.json

"scripts": {     "test": "jest --watchAll"   },

效果

fileOf7174.png

5.生成测试覆盖率报告

什么是单元测试覆盖率?

单元测试覆盖率是一种软件测试的度量指标,指在所有功能代码中,完成了单元测试的代码所占的比例。有很多自动化测试框架工具可以提供这一统计数据,其中最基础的计算方式为:

单元测试覆盖率 = 被测代码行数 / 参测代码总行数 * 100%
如何生成?

加入 jest.config.js  文件

module.exports = {// 是否显示覆盖率报告collectCoverage: true,// 告诉 jest 哪些文件需要经过单元测试测试collectCoverageFrom: ['get.ts', 'sum.ts', 'src/utils/**/*'],
}

再次运行效果

fileOf7174.png

参数解读

参数名含义说明
% stmts语句覆盖率是不是每个语句都执行了?
% Branch分支覆盖率是不是每个 if 代码块都执行了?
% Funcs函数覆盖率是不是每个函数都调用了?
% Lines行覆盖率是不是每一行都执行了?

设置单元测试覆盖率阀值

个人认为既然在项目中集成了单元测试,那么非常有必要关注单元测试的质量,而覆盖率则一定程度上客观的反映了单测的质量,同时我们还可以通过设置单元测试阀值的方式提示用户是否达到了预期质量。

jest.config.js  文件

module.exports = {collectCoverage: true, // 是否显示覆盖率报告collectCoverageFrom: ['get.ts', 'sum.ts', 'src/utils/**/*'], // 告诉 jest 哪些文件需要经过单元测试测试coverageThreshold: {global: {statements: 90, // 保证每个语句都执行了functions: 90, // 保证每个函数都调用了branches: 90, // 保证每个 if 等分支代码都执行了},},

上述阀值要求我们的测试用例足够充分,如果我们的用例没有足够充分,则下面的报错将会帮助你去完善

fileOf7174.png

http://www.dtcms.com/wzjs/449184.html

相关文章:

  • 政府网站建设 重要性可以访问境外的浏览器
  • 虹口区建设工程管理网站东莞优化seo
  • 网站建设模式有哪些内容网站关键词快速排名优化
  • icp备案网站建设方案书重庆网站建设维护
  • 网站开发方案案例网络营销个人感悟小结
  • 响水县住房和城乡建设局网站自媒体十大平台
  • 怎样自己做网站包头seo
  • 湖南网站seo百度2019旧版本下载
  • 政府采购网登录网站优化排名网站
  • 都有哪些网站百度客服24小时人工电话
  • 仿网站ppt怎么做做一个网站需要多少钱
  • 佛山做网站优化公司外贸网络推广经验
  • 做旅游网站需要什么橙子建站
  • 找装修公司上什么网站360网站seo手机优化软件
  • 株洲网站建设公司今天新闻
  • 陕西通达工程建设有限公司网站南通关键词优化平台
  • 正邦网站建设关键字
  • 如何通过axure做网站广东近期新闻
  • 为赌博网站做网络维护服务营销理论
  • 自适应网站可以做伪静态页面吗营销的三个基本概念是什么
  • 保定市网站制作搜索量最大的关键词
  • 网站问题seo解决方案网站seo快速排名优化的软件
  • 系统网站建设需求分析有品质的网站推广公司
  • wpf视频教程 -.net购物网站开发搜客
  • 做个公司网站要多少钱建立网站需要什么技术
  • 如何制作网站链接seo优缺点
  • 广州白云网站建设公司百度推广一个月多少钱
  • 怎么下载网站程序百度seo优化包含哪几项
  • 网站建设内容有哪些网站可以免费推广
  • 中国还有哪些做外贸的网站今日国内新闻大事