mocha单元测试简易教程

写在前面

其实mocha单元测试的教程网上有很多,也都很简单易懂,但是每个人对同一份的教程也会产生不同的理解,像我这种大概就是走遍了所有弯路才到达终点的人,想通过给大家分享一下自己的实践过程,希望有人能从我这得到收获

教程参考

安装

以下安装文件大小都在10-20M之间,您可以快速的完成安装过程

  • Node.js

    因为mocha安装依赖Node,所以在下载mocha前先在官网下载Node.js,Node下载安装几乎是一路傻瓜next,如想确保安装的正确性,请参考nodejs详细安装步骤
  • mocha

    mocha安装请到测试框架 Mocha 实例教程,这里面提供了几个demo,可以确保您在一步步测试样例中熟悉mocha单元测试步骤

单元测试

  • 在单元测试前我们需要:一个js文件和一个test.js文件。

js文件中存放您需要测试的函数,test.js存放您对js文件的测试。这里使用上面讲到的demo中的一个做样例讲解。

假设要实现如下下加法运算,您可以将函数存在add.js中

function add(x, y) {
return x + y;
}

进行单元测试前需在函数尾部加module.exports = add;将需要测试的函数暴露出去,前面的"use strict";是标准设置

"use strict";
function add(x, y) {
return x + y;
}
module.exports = add;

然后创建add.test.js文件,这个文件可以跟js文件放在一个目录下,也可以在js文件所在目录再创建一个test文件夹,将add.test.js存放在test文件夹中。两种形式最后都是在js所在目录下运行mocha。

以下为add.test.js中的简易测试内容,其中describe的第一个参数是对测试的描述,it中的第一个参数是对测试结果的描述

/*以下为固定格式,其中require中内容及变量按照您要测试的函数命名*/
"use strict";
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);
});
});
  • 进行单元测试

    打开cmd窗口,进入add.js所在目录

    输入
npm install mocha -g
npm install --save-dev chai

第二条尤其注意,您可能在前面已经安装了全局chai如下,但是要进行mocha单元测试需要在js所在目录下安装局部chai,否则会报错Error: Cannot find module 'chai'

npm install chai -g

接下来就是还有一个注意点,如果您将js和test.js文件放在一个目录下,test.js的require书写如下

var add = require('./add.js');//根据函数名命名参数

就在cmd输入mocha add.test.js如下进行单元测试

如果是将test.js文件放入test文件夹中,test.js的require书写如下,区别在于add.js前面"."的个数

var add = require('../add.js');//根据函数名命名参数

cmd直接输入mocha运行如下

单元测试完成

mocha单元测试简易教程的更多相关文章

  1. Intellj IDEA 简易教程

    Intellj IDEA 简易教程 目录 JDK 安装测试 IDEA 安装测试 调试 单元测试 重构 Git Android 其他 参考资料 Java开发IDE(Integrated Developm ...

  2. 生活科技两相宜:(一)Win7使用微软SkyDrive网盘简易教程

    今天得写一个Win7使用微软SkyDrive网盘的简易教程,主要是给我老婆看,顺便贴出来给大家共享一下:)    使用微软SkyDrive网盘有两个层次.一个是使用网页版,这个跟使用163或者QQ网盘 ...

  3. JavaScript简易教程(转)

    原文:http://www.cnblogs.com/yanhaijing/p/3685304.html 这是我所知道的最完整最简洁的JavaScript基础教程. 这篇文章带你尽快走进JavaScri ...

  4. Emacs简易教程

    Emacs简易教程阅读: 命令: $emacs 进入之后,输入: C-h t 这里,C-h表示按住[Ctrl]键的同时按h ####### 20090620 *退出: 输入“C-x C-c” *撤销: ...

  5. 文件上传利器SWFUpload入门简易教程

    凡做过网站开发的都应该知道表单file的确鸡肋. Ajax解决了不刷新页面提交表单,但是却没有解决文件上传不刷新页面,当然也有其它技术让不刷新页面而提交文件,该技术主要是利用隐藏的iFrame, 较A ...

  6. 【转】Delphi内嵌ASM简易教程

    Delphi内嵌ASM简易教程 作者:heiying2006-03-19 18:33分类:默认分类标签: 前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入 ...

  7. Ant 简易教程

    转载:http://www.cnblogs.com/jingmoxukong/p/4433945.html Ant 简易教程 Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动 ...

  8. MetaProducts Offline Explorer使用简易教程

    MetaProducts Offline Explorer使用简易教程 by windtrace  20170419 最近想下载一个网站上的内容打包成chm文件,以便离线浏览,webzip太长时间不更 ...

  9. Zabbix实战-简易教程系列

    一.基础篇(安装和接入) Zabbix实战-简易教程--总流程  Zabbix实战-简易教程--整体架构图 Zabbix实战-简易教程--DB安装和表分区 Zabbix实战-简易教程--Server端 ...

随机推荐

  1. 报错:failed to get the task for process XXX(解决方案)

    引文: iOS真机调试程序,报如下错误信息: 原因: 证书问题,project和targets的证书都必须是开发证书,ADHOC的证书会出现此问题. 解决方案: project和targets的证书使 ...

  2. intellij IDEA github clone 指定分支代码

    1.问题描述 在实际开发中,我们通常会使用idea克隆一个新项目(clone),通常情况下,我们默认克隆的是master分支,但是如果master分支只是一个空文件夹而已,真正的代码在develop分 ...

  3. 【体系结构】有关Oracle SCN知识点的整理

    [体系结构]有关Oracle SCN知识点的整理 1  BLOG文档结构图   BLOG_Oracle_lhr_Oracle SCN的一点研究.pdf 2  前言部分 2.1  导读和注意事项 各位技 ...

  4. mysql where 1

    where后跟各种查询条件,当条件为真时即可查询出记录.在这里where 1,1为真,也就是where后的条件为真,查询表中所有内容. SELECT * FROM `sdb_pam_members` ...

  5. 下载恶意pcap包的网站

    说几个我经常用的,免费的:1.  Malware  Traffic  Analysis:  http://www.malware-traffic-analysis.net/2018/index.htm ...

  6. 在命令行中执行kms命令激活Microsoft Office 2010

    激活office2010的命令是什么?激活office2010除了使用office2010激活工具之外,还可以使用kms命令来激活office2010,但是office2010激活命令还需考虑32位或 ...

  7. python_常用断言assert

    python自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 常用 这里介绍几个常用断言的使用方法 ...

  8. 项目Alpha冲刺 8

    作业描述 课程: 软件工程1916|W(福州大学) 作业要求: 项目Alpha冲刺(团队) 团队名称: 火鸡堂 作业目标: 介绍第8天冲刺的项目进展.问题困难和心得体会 1.团队信息 队名:火鸡堂 队 ...

  9. UVA - 12183 :Top Secret(N^2的循环矩阵乘法)

    pro:N个数排成一圈.一次操作为,每个位置的数+=L*左+R*右,保留x为整数. 问S轮操作后每个位置的值. N<=1000,S<=2^30,x<=9 . sol:不难想到矩阵乘法 ...

  10. 七牛云——qshell一个神奇的工具

    前言 qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具.该工具设计和开发的主要目的就是帮助开发者快速解决问题.目前该工具融合了七牛存储,CDN,以及其他 ...