当我们编写比较复杂的项目时,需要对项目的测试用例进行长期跟踪,对单元模块进行质量控制,对开发成果进行自我检验,那么需要一个好用的工具,自学了一下mocha,这个笔记几乎是照搬官网的英文版进行了自我的一番理解的初步呈现,多以条目为主,还没有时间进一步实践,通过强制写笔记的方式,鞭策自己加深理解,学会分享,提高学习力,我在努力。
创新互联成立于2013年,是专业互联网技术服务公司,拥有项目成都做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元汕城做网站,已为上家服务,为汕城各地企业和个人服务,联系电话:18982081108
npm install --global mocha
npm install --save-dev mocha
Mocha v3.0.0 需要npm v2.14.2+
v3.0.0之后,不再依赖字符串匹配来决定执行哪些测试。
.only()可以多次使用来定义要运行的测试子集。
可以支持before, after, beforeEach, afterEach
mocha会运行test目录下所有测试,目录名不能修改。
如果要包含子目录用--recursive
使用npm init命令生成package.json
it("name", function(){…})
一次只测一种情况,测试代码要非常简单cd mocha
describe.only("#indexOf()", function(){});
descrip.skip("#indexOf()", function(){});
before(function(){
if(/* check test environment */) {
//setup code
} else {
this.skip();
}
});
err.actual err.expected 断言成功失败视图
var testCase = require('mocha').describe;//可以用更直观的变量名称
当调用this.retries(x)时,会重新调用beforeEach及afterEach方法
this.slow(10000);
this.timeout(500);
套件级
describe片段
测试级
it片段
钩子级
beforeEach中
BDD,TDD,Exports,QUnit,Require
BDD接口比较常用,之前的例子都是BDD。
TDD接口是类似JUnit的调用方式。
QUNIT扁平化的样子类似于TDD,但也支持before,after,beforeEach,afterEach
Wallaby.js
mocha摩卡侧边栏
spec报告器:可以输出嵌套的分层视图
点阵报告器:是最小化的输出,可以用一系列字符代表测试用例,失败是红色叹号,待定是蓝色逗号,慢速是×××显示
NYAN报告器:有一只猫做进度条,这个莫名其妙
TAP报告器:显示每行单元测试明细
LANDING STRIP 报告器:飞机降落的跑道
LIST报告器:明细列表
PROGRESS进展报告器:进度条
MIN报告器:仅显示摘要
DOC报告器:以html格式正文输出
mocha.setup({
ui:'tdd',
ignoreLeaks: true,
asyncOnly: true
});
mocha --reporter list --growl
$REPORTER=nyan npm test
多次调用回调会抛错
var should = require('chai').should();
这个可以判断should.exist(bitcore.lib);这些内容是否存在
to
be
been
let server = sinon.fakeServer.create();
模拟返回值:sinon.fake.returns(42);
模拟ajax:sinon.replace(jQuery, 'ajax', sinon.fake());
模拟xhr:sinon.useFakeXMLHttpRequest();
模拟服务器:sinon.fakeServer.create()
sinon.mock(database);
stub拥有spies的所有功能,不是为了监视调用情况,而是完全取代。
mock与stub功能一样,都是用来替换指定函数,mock用在替换掉多个方法,stub适用于替换一个函数。