1、mocha简介

单元测试是用来对一个模块、一个函数、或者一个类来进行正确性的检测工作
 
特点:
     既可以测试简单的JavaScript函数,又可以测试异步代码,
 
        可以自动运行所有测试,也可以只运行特定的测试

 
2、编写模块代码
module.exports = {
add:function(a,b){
return a+b;
}, reduce:function(a,b){
return a-b;
}, ride:function(a,b){
return a*b
}
}

3、编写测试脚本

1、全局安装mocha模块   cnpm install mocha -g

2、安装chai模块  cnpm install chai --save-dev

3、describe块称为"测试套件"(test suite),表示一组相关的测试。它是一个函数,第一个参数是测试套件的名称("加法函数的测试"),第二个参数是一个实际执行的函数。
it块称为"测试用例"(test case),表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称("1 加 1 应该等于 2"),第二个参数是一个实际执行的函数。 4、在接下来的测试中我们用expect进行测试 const expect = require("chai").expect; describe("对计算器模块的测试",function(){
//对模块的测试放在it里面
it("测试加法",function(){ //相等不相等的判断
//测试:断定add方法1+2的值是3
expect(calculator.add(1,2)).to.equal(3) //测试:断定add方法1+2的值不等于3
expect(calculator.add(1,2)).to.not.equal(10) //类型的判断
//测试:断定add方法的返回值得类型是number
expect(calculator.add(1,2)).to.be.a("number"); //测试:断定这个值得类型是一个对象
expect({name:"zhao"}).to.be.an("Object"); //测试:断定这个值得类型是一个数组
expect([1,2,3]).to.be.an("array"); //长度的判断
//测试:断定str方法的返回值的长度是3
expect(calculator.str()).to.have.lengthOf(3); //是否存在的判断
//测试:断定obj方法的返回值得属性中有name这个属性
expect(calculator.obj()).to.have.property("name"); //测试:断定这个值里面有3这个值
expect([1,2,3,4]).to.include(3); //测试:断定这个值的内容值有o这个字符
expect("zhao").to.contain("o"); //布尔值的判断
//测试:断定这个值得布尔值的类型是true
expect("abc").to.be.ok; //测试:断定这个值得布尔值的类型不是true
expect("").to.be.not.ok;
})
}) mocha还可以监听脚本的变化 mocha --watch

基本上,expect断言的写法都是一样的。头部是expect方法,尾部是断言方法,比如equala/anokmatch等。两者之间使用toto.be连接。

详情请参考:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html

【node】----mocha单元测试框架-----【巷子】的更多相关文章

  1. Mocha 单元测试框架简介

    前言: mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行. 使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自动运 ...

  2. javascript单元测试框架mochajs详解

    关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...

  3. javascript单元测试框架mochajs详解(转载)

    章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建议使用箭头函数 钩子函数 钩 ...

  4. 前端单元测试框架-Mocha

    引言 随着前端工程化这一概念的产生,项目开发中前端的代码量可谓是'急剧上升',所以在这种情况下,我们如何才能保证代码的质量呢,对于框架,比如React.Vue,因为有自己的语法规则,及时每个开发人员的 ...

  5. Javascript单元测试框架比较Qunit VS Jasmine

    Javascript单元测试框架比较Qunit VS Jasmine 工欲行其事必先利其器,好的单元测试框架是TDD成功的一半.Javascript优秀的测试框架很多, 包括Jasmine,Qunit ...

  6. 玩转Node.js单元测试

    代码部署之前,进行一定的单元测试是十分必要的,这样能够有效并且持续保证代码质量.而实践表明,高质量的单元测试还可以帮助我们完善自己的代码.这篇博客将通过一些简单的测试案例,介绍几款Node.js测试模 ...

  7. Mocha测试框架,保证代码质量

    mocha mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行. 使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自 ...

  8. mocha单元测试简易教程

    mocha单元测试简易教程 写在前面 其实mocha单元测试的教程网上有很多,也都很简单易懂,但是每个人对同一份的教程也会产生不同的理解,像我这种大概就是走遍了所有弯路才到达终点的人,想通过给大家分享 ...

  9. mocha_JavaScript单元测试框架

    mocha mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行. 使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自 ...

随机推荐

  1. Vector & ArrayList Hashtable & HashMap ArrayList & LinkedList

    1. Vector & ArrayList 1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的 ...

  2. awk基础命令

    1. 命令awk简介 a. awk是一种编程语言,用于对文本和数据进行处理. b.具有强大得文本格式话能力 c.利用命令awk,可以将一些文本整理成需要的格式. d.命令awk是逐行进行处理的 2. ...

  3. C# HttpRequest基础连接已经关闭: 接收时发生意外错误

    在c#中使用HttpWebRequest时,频繁请求一个网址时,过段时间就会出现“基础连接已经关闭: 接收时发生意外错误”的错误提示. 将webRequest的属性设置成下面的,经测试可以解决. we ...

  4. (转)YV12 and NV12

    用videoCapture和IAMStreamConfig拿到的支持的格式列表.发现支持2中图像格式,YV12和NV12.具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪 YV ...

  5. Android开源库集锦(转)

    一.兼容类库 ActionBarSherlock : Action Bar是Android 3.0后才开始支持的,ActionBarSherlock是让Action Bar功能支持2.X后的所有平台, ...

  6. 转载:QT QTableView用法小结

    出自: http://blog.chinaunix.net/uid-20382483-id-3518513.html QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: ...

  7. php如何定时执行任务

    PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的 ...

  8. PHP截断函数mb_substr()

    提示:mb_substr在于php中是默认不被支持的我们需要在在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到;extension=php_mbstring.dll ...

  9. 五大移动GPU厂商

    <谁能笑傲江湖?移动处理器门派那些事儿>一文中我们把2012年的移动处理器的厂商做了一番介绍,并依照各自的属性给划分了门派.既然把他们称为江湖门派.那么每一个门派总要有自己的绝活.移动处理 ...

  10. 利用GetType反射方法再调用方法进行传递参数实现调用

    直接上代码: TestMenuService.MenuServiceCSClient tesClient = new TestMenuService.MenuServiceCSClient(); va ...