mocha测试框架使用
全局安装
npm install --global mocha
测试脚本与所要测试的源码脚本同名,但是后缀名为.test.js
(表示测试)或者.spec.js
(表示规格)。比如,add.js
的测试脚本名字就是add.test.js。
// add.test.js
var add = require('./add.js');
var expect = require('chai').expect;describe('加法函数的测试', function() {it('1 加 1 应该等于 2', function() {expect(add(1, 1)).to.be.equal(2);});
});
上面这段代码,就是测试脚本,它可以独立执行。测试脚本里面应该包括一个或多个describe
块,每个describe
块应该包括一个或多个it
块。
describe
块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("加法函数的测试"),第二个参数是一个实际执行的函数。
it
块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 加 1 应该等于 2"),第二个参数是一个实际执行的函数。
断言库
所谓"断言",就
所有的测试用例(it块)都应该含有一句或多句的断言。它是编写测试用例的关键。断言功能由断言库来实现,Mocha本身不带断言库,所以必须先引入断言库。
var expect = require('chai').expect;
断言库有很多种,Mocha并不限制使用哪一种。上面代码引入的断言库是chai,并且指定使用它的expect断言风格。
expect
断言的优点是很接近自然语言,下面是一些例子。
// 相等或不相等 expect(4 + 5).to.be.equal(9); expect(4 + 5).to.be.not.equal(10); expect(foo).to.be.deep.equal({ bar: 'baz' });// 布尔值为true expect('everthing').to.be.ok; expect(false).to.not.be.ok;// typeof expect('test').to.be.a('string'); expect({ foo: 'bar' }).to.be.an('object'); expect(foo).to.be.an.instanceof(Foo);// include expect([1,2,3]).to.include(2); expect('foobar').to.contain('foo'); expect({ foo: 'bar', hello: 'universe' }).to.include.keys('foo');// empty expect([]).to.be.empty; expect('').to.be.empty; expect({}).to.be.empty;// match expect('foobar').to.match(/^foo/);
是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。
基本上,expect
断言的写法都是一样的。头部是expect
方法,尾部是断言方法,比如equal
、a
/an
、ok
、match
等。两者之间使用to
或to.be
连接。
如果expect
断言不成立,就会抛出一个错误。事实上,只要不抛出错误,测试用例就算通过。
it('1 加 1 应该等于 2', function() {});
上面的这个测试用例,内部没有任何代码,由于没有抛出了错误,所以还是会通过。
执行mocha
mocha add.test.js
可能出现报错
可以在命令行输入下面一行
npm install --save-dev chai
然后再次执行mocha add.test.js就不报错了
mocha
命令后面紧跟测试脚本的路径和文件名,可以指定多个测试脚本。
mocha file1 file2 file3
直接输入mocha
Mocha默认运行test
子目录里面的测试脚本。所以,一般都会把测试脚本放在test
目录里面,然后执行mocha
就不需要参数了
mocha
Mocha默认只执行test
子目录下面第一层的测试用例,不会执行更下层的用例,为了改变这种行为,就必须加上--recursive
参数
mocha --recursive
mocha测试框架使用相关推荐
- Noejs Mocha测试框架
ㅤㅤㅤ ㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(不应当急于求成,应当去熟悉自己的研究对象,锲而不舍,时间会成全一切.凡事开始最难,然而更难的是何以善终.--莎士比亚) ㅤㅤㅤ ㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤ ...
- Truffle测试框架
Truffle测试框架 Truffle 有一个标准的自动化测试框架,让你可以非常方便地测试您的合约.这个框架允许您以两种不同的方式编写简单可控的测试: 1. 在JavaScript中, 用于执行来自外 ...
- Protractor AngularJS测试框架教程
Protractor是一个建立在WebDriverJS基础上的端到端(E2E)的AngularJS JavaScript Web应用程序测试框架.Protractor全自动化真实的模拟用户在真正的浏览 ...
- javascript测试框架mocha
node测试框架mocha 简单.灵活.有趣,mocha是一个功能丰富的javascript测试框架,运行在node和浏览器中,使异步测试变得更加简单有趣.http://mochajs.org/ 安装 ...
- mocha检测c语言,前端测试框架mocha使用小结
安装 npm i -g mocha npm i chai -D //断言库 模块测试 比如有一个add函数 //add.js function add(a, b){ return a + b } mo ...
- testem方便的web tdd 测试框架使用
备注: 单元测试,对于日常的开发是比较重要的,testem 简化了我们的代码编写,以及运行. 主要特性: a. 支持的测试框架有:jasmine quint mocha buster.js ,同时也包 ...
- e2e测试框架之Cypress
谈起web自动化测试,大家首先想到的是Selenium!随着近几年前端技术的发展,出现了不少前端测试框架,这些测试框架大多并不依赖于Selenium,这一点跟后端测试框架有很大不同,如Robot Fr ...
- 测试框架 Jest 实例教程
Jest 是由 Facebook 开源出来的一个测试框架,它集成了断言库.mock.快照测试.覆盖率报告等功能.它非常适合用来测试 React 代码,但不仅仅如此,所有的 js 代码都可以使用 Jes ...
- 【Karma】多环境自动测试框架 -- 基础教程
介绍 前身 Testacular, AngularJs Team 创建出来的. 以下是官网对Karma的相关特点介绍 支持真实浏览器, 无浏览器PhantomJS 热更新,文件变化后自动测试 测试框架 ...
- mocha 测试 mysql_node项目mocha自动化测试的疑问
测试框架:mocha 数据库:mysql和mongodb 疑问1. 如何控制多个测试用例的运行顺序?用例写多了,A用例把数据变成了状态1,有些后面的用例基于这个状态1的数据进行查询判断,才能使得后面的 ...
最新文章
- Linux下的权限掩码umask
- Java8 中用法优雅的 Stream 性能也优雅吗?
- MyEclipse9安装Checkstyle5.5插件(图解)
- 6-3 求链表的倒数第m个元素
- Win10 Bash/WSL调试Linux环境下的.NET Core应用程序
- 微信小程序——评论点赞功能
- 3500常用汉字书法体检测数据集
- 利用Netica训练简易贝叶斯网络模型【教程】
- Linux部署SSM项目
- Dijkstra最短路算法
- python视频补帧_视频补帧软件(DAIN APP)软件下载_视频补帧软件(DAIN APP)v0.40官方版 - Windows10系统之家...
- BigDecimal
- android mmm 编译错误,Android 7.1 使用mmm编译模块失败
- 一个int类型到底占多少个字节?
- MongoDB的可视化工具Robo 3T安装
- 2022年8月29日 勒索病毒大爆发
- 生活娱乐 怎么治疗冻疮 有特效
- 软考 | 2018年上半年 软件设计师 下午试卷
- 2020年熔化焊接与热切割模拟考试系统及熔化焊接与热切割考试试题
- 一文读懂LWD随钻测井技术
热门文章
- 智能手环APP软件开发
- WordPress缩略图出现A TimThumb error has occured解决办法
- 取得目录和取得操作系统盘符以及获取系统盘可用空间
- 百度人脸识别之人脸注册AddUser
- OPENSSL的安装使用
- Springboot+基于知识图谱的短视频推荐系统设计与实现 毕业设计-附源码231115
- 香农公式说明了什么_香农定理到底有什么含义?能通俗地解释一下么?
- 领英问题问答--有关领英各类问题整理,置顶推荐
- Vue-Router给当前url添加参数时报错 Navigation Duplicated Avoided redundant navigation to current location
- Port Forwarding in Windows