mocha测试js教程(涉及es6、ts)
下面是源码目录结构
一、安装依赖
npm init
npm install --save-dev mocha
npm install --save-dev chai
npm install --save-dev @types/mocha
npm install --save-dev @types/chai
二、编写es5规范的测试案例
在lib下新建add.js
var add = function(a,b){return a + b;
}
module.exports= add;
在test下新建 add.test.js,describe 也称为test suite,即“测试套件”,是可以嵌套的。一个describe可以有多个it,一个it代表一个测试用例。it里面又可以有多个expect,当然expect是chai 暴露出来的一种接口形式,我们也可以使用Assert、Should。
var add = require("../lib/add");
var expect = require("chai").expect;describe('加法函数测试',function(){it('1+1应该等于2',function(){expect(add(1,1)).to.be.equal(2);})
})
在package.json的script下新加 “test”: “mocha ./test/*.js”
"scripts": {"test": "mocha ./test/*.js"}
然后执行npm run test,会看到控制台输出如下时就表示这个测试案例通过了
这样就完成了一个es5规范的js的测试,那接下来问题来了,对于es6的我们该怎么处理,请看下面
三、编写es6的测试案例
在lib下新建es6.js
let square = function(n){return n*n;
};
export default square;
test下编写测试代码es6.test.js
import square from "../lib/es6";
let expect = require("chai").expect;describe('square函数测试',function(){it('2的平方应该等于4',function(){expect(square(2)).to.be.equal(4);})
})
这时候直接运行npm run test会报错,对于es6预发我们需要使用babel-register模块
首先安装一下
npm install --save-dev babel-register
npm install --save-dev babel-preset-env
babel-preset-env依赖包的作用可以参考下这个文档
https://www.cnblogs.com/ye-hcj/p/7070084.html
然后修改一下package.json的script
"scripts": {"test": "mocha -r babel-register ./test/*.js"}
创建.babelrc文件
{"presets": [["env"]]
}
在执行npm run test就可成功执行针对es6的测试案例
四、编写typescript测试案例
在lib下新建helloTs.ts,test下编写测试代码helloTs.test.ts
function hello():string{return 'hello World';
}
export default hello;
import hello from '../lib/helloTs';
import {expect} from 'chai';
import 'mocha';describe("hello function测试",function(){it('应该返回hello world',function(){const result = hello();expect(result).to.equal("hello World");})
})
npm install --save-dev typescript
npm install --save-dev ts-node
然后修改一下package.json的script,新加一条"testTs": “mocha -r ts-node/register ./test/*.ts”,当然要想处理typescript需要先安装typescript、ts-node模块
package.json的script变为
"scripts": {"test": "mocha -r babel-core/register ./test/*.js","testTs": "mocha -r ts-node/register ./test/*.ts"},
然后执行npm run testTs即可
参考博客:https://blog.csdn.net/weixin_39678029/article/details/86094517 因为原博客有一些bug,上面我有一些改动
mocha测试js教程(涉及es6、ts)相关推荐
- PHP开发者的JavaScript快速教程(phper简明js教程)
本文提供word格式文档,下载链接: https://pan.baidu.com/s/1CcM2Dl4_rG0qe0omxPG8zQ 提取码: 9isx 前言: 每一位PHP开发者或多或少的都掌握一些 ...
- 10+ 最佳的 Node.js 教程和实例
如果你正在找Node.js的学习资料及指南,那么请继续(阅读),我们的教程将会覆盖即时聊天应用.API服务编写.投票问卷应用.人物投票APP.社交授权. Node.js on Raspberry Pi ...
- Noejs Mocha测试框架
ㅤㅤㅤ ㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(不应当急于求成,应当去熟悉自己的研究对象,锲而不舍,时间会成全一切.凡事开始最难,然而更难的是何以善终.--莎士比亚) ㅤㅤㅤ ㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤ ...
- ES6 极简教程(ES6 Tutorial) 文 / 东海陈光剑
ES6 极简教程(ES6 Tutorial) 文 / 东海陈光剑 ECMAScript简介 JavaScript是ECMAScript的实现和扩展,由ECMA(一个类似W3C的标准组织)参与进行标准化 ...
- Protractor AngularJS测试框架教程
Protractor是一个建立在WebDriverJS基础上的端到端(E2E)的AngularJS JavaScript Web应用程序测试框架.Protractor全自动化真实的模拟用户在真正的浏览 ...
- 李炎恢 js教程 拖拽上 思路解析
李炎恢再讲js教程 拖拽上 讲到一个登录框,通过鼠标移动登录框到浏览器各个地方,我们现在对李炎恢的怎么想出进行分析: 问题期望是什么? 1.我们通过鼠标点击登录框,然后登录框被移动,松开鼠标,停止移动 ...
- Three.js教程:三维坐标系
推荐:将 NSDT场景编辑器 加入你的3D工具链 其他系列工具: NSDT简石数字孪生 三维坐标系 本节课的目的就是为了加强大家对threejs三维空间的认识. 辅助观察坐标系 THREE.AxesH ...
- Vue.js教程-Vue项目的目录结构和.vue文件的构成
Vue.js教程-Vue项目的目录结构和.vue文件的构成 前言 Vue项目的目录结构(Vue-cli3/4版本) .vue文件的构成 Html区域(template) script区域 export ...
- Vue.js教程-组件化开发
Vue.js教程-组件化开发 前言 Vue组件化 什么是组件化 Vue单页面开发的解释 组件化思想 组件的使用 原理 实际开发中的使用-父子组件 父子组件传递数据 父传子-props用法 子传父-th ...
最新文章
- paypal提现软件_PayPal软件工程师生命中的一天
- OS X终端颜色[关闭]
- 浅析制造业物料编码在ERP系统中的实施
- linux中tcp连接内核参数调优somaxconn
- Linux文件系统命令 cat
- ocp 043 第十三章:管理资源
- 标示符和关键字的总结--希望别再犯错
- UIView中常用的方法
- 设置MYSQL数据库编码为UTF-8
- 【manacher】Strings in the Pocket
- RDS 设置 group_concat的长度限制 1024 改为 102400
- 共享单车变身“行走的弹幕”,清华大学等17所高校均有投放
- 产品经理之深度学习促进产品之分类(三)
- 前端—每天5道面试题(5)
- Espresso unit test的输入法问题
- hbase windows 单机版安装
- 经纬度PLT文件格式说明
- 36. linux系统日志在哪里看
- 动漫制作都用html5吗,怎么制作h5动画?
- 在服务器系统Windows 2003安装Avira AntiVir小红伞免费中文版
热门文章
- 《Catalysis Clustering with GAN by Incorporating Domain Knowledge》论文精读分析
- 奥维查看行政边界_百度地图获取行政范围边界
- ThinkPad X201 笔记本通过硬盘安装 Ubuntu 双系统
- 知网的html查重报告看不了,知网查重报告单怎么看
- 分享分析TCGA的数据库——GEPIA(一)
- Android支付宝错误码62009,hb混合开发app 微信支付提示支付宝62009未知错误
- keras中EarlyStopping
- 视频点播RTMP推流直播流媒体服务二次开发集成接口
- 小议并实战go包------顺便说说go中的GOROOT,GOPATH和src,pkg,bin
- Manjaro下安装坚果云后登录界面空白解决方法