Nodejs Mocha测试学习
参考大神阮一峰的文章《测试框架 Mocha 实例教程》
目前在使用Nodejs,但写完的程序很容易出错,那怎么办?需要引入单元测试去做基础的测试
目前Nodejs用来做单元测试的工具接触的不多,现在只接触到Mocha,它是用来做单元测试的最好的工具之一。

关于Mocha的基础教程,可以看一下阮一峰老师的博客:测试框架 Mocha 实例教程
=》基本概念:
describe():测试区块,一个测试区块应该包含一个或多个测试区块,测试区块也是可以多层嵌套的
it():测试用例,一个测试区块中应该包含一个或多个测试用例
=》测试用例钩子:
before():在本区块所有测试用例执行之前执行
after():在本区块所有测试用例执行之后执行
beforeEach():在本区块每个测试用例之前执行
afterEach():在本区块每个测试用例之后执行
=》断言库:
chai:Mocha本身没有断言库,chai可以作为Mocha的断言库
chai-as-promise:目前的方法很多都是Promise的方式,这个断言库可以支持到Promise
=》测试用例管理:
only():测试区块和测试用例都支持only方法,如果某个测试区块或测试用例调用了only方法,则在运行单元测试时只运行该测试区块或测试用例
skip():测试区块和测试用例都支持skip方法,如果某个测试区块或测试用例调用了skip方法,则在支行单元测试时会跳过该测试区块或测试用例
only()和skip()共存的时候,only()会把skip()的作用给忽略掉
=》异步测试:
在测试方法异步完成后,调用done()方法,一个it测试实例中只能有一个done()方法
=》重新运行实例
在运行测试实例时,我们可以让一个实例重新执行一定的次数,在describe()和it()中加入this.retries(4);,即可执行4次,但是Mocha不推荐这样的做法
=》动太生成测试用例
var assert = require('chai').assert;
function add() {
return Array.prototype.slice.call(arguments).reduce(function (prev, curr) {
return prev + curr;
}, );
}
describe('add()', function () {
var tests = [
{ args: [, ], expected: },
{ args: [, , ], expected: }
];
tests.forEach(function (test) {
it('test adds ' + test.args.length + ' args', function () {
var res = add.apply(null, test.args);
assert.equal(res, test.expected);
});
});
});
Nodejs Mocha测试学习的更多相关文章
- mocha测试框架-truffle
https://mochajs.org/ 学习网址: https://www.jianshu.com/p/9c78548caffa https://www.jb51.net/article/10646 ...
- 使用mocha测试
学习了MOCHA官网的示例,将学习成果记录一下.[原文+例子:使用mocha测试] mocha是什么 Mocha是一个跑在node和浏览器上的javascript测试框架,让异步测试变得简单有趣, 并 ...
- Nodejs实战 —— 测试 Node 程序
读 <node.js实战2.0>,进行学习记录总结. 当当网购买链接 豆瓣网1.0链接 测试 Node 程序 本章内容 用 Node 的 assert 模块测试 使用其他断言库 使用 No ...
- phpunit测试学习 2 分类总结断言涉及哪些方面
11:27 2015/12/9phpunit测试学习 2, 分类总结断言涉及哪些方面先推荐windows快速打开某处路径下的cmd,进入测试状态:可以在文件夹中,按住Shift+鼠标右键,这时候你就 ...
- phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识
16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错 ...
- 添加 node mocha 测试模块
1.mocha 支持TDD 和 BDD两种测试风格 2.引用assert模块 此模块是node的原生模块,实现断言的功能,作用是声明预期的结果必须满足 3.mocha测试用例中可以使用第三方测试库 ...
- Web安全测试学习手册-业务逻辑测试
i春秋作家:Vulkey_Chen 首先感谢朋友倾璇的邀请 http://payloads.online/archivers/2018-03-21/1 ,参与了<web安全测试学习手册>的 ...
- 开始nodejs+express的学习+实践(1)
开始nodejs+express的学习+实践(1) 开始nodejs+express的学习+实践(2) 开始nodejs+express的学习+实践(3) 开始nodejs+express的学习+实践 ...
- IntelliJ IDEA测试学习网站
IntelliJ IDEA测试学习网站 http://idea.lanyus.com/ 嗯,请支持正版:
随机推荐
- Web Audio API之手把手教你用web api处理声音信号:可视化音乐demo
1.Web Audio API 介绍 Web Audio API 提供了在Web上控制音频的一个非常有效通用的系统 ,这些通用系统通俗的讲就是我们可以利用Web Audio API提供的各种方法操作各 ...
- Tomcat 映射虚拟目录和程序热部署
虚拟目录的设置 方法一:在${tomcat安装目录}/conf/Catalina/localhost目录下创建一个xml文件,任意文件名都可以,但是此文件名是web应用发布后的虚拟目录: 比如创建一个 ...
- 奇偶排序Odd-even sort
又一个比较性质的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序 举例吧, 待排数组[6 2 4 1 5 9] 第一次比较奇数列,奇数列与它的邻居偶数列比较,如6和2比 ...
- Oracle数据库,忽略大小写Like模糊查询(SQL Server,MySql原理相同)
背景 在使用Oracle或者其它数据库时,使用like 关键字进行模糊查询是大家经常使用的功能,在纯中文环境中使用非常好用,还有一些通配符可以使用,但是在纯英文环境中,会出现大小需要精确匹配的问题,主 ...
- 洛谷金秋夏令营模拟赛 第2场 T11738 伪神
调了一个下午只有八十分QAQ md弃了不管了 对拍也没拍出来 鬼知道是什么数据把我卡了QAQ 没事我只是个SB而已 这题其实还是蛮正常的 做法其实很简单 根据链剖的构造方法 你每次修改都是一段又一段的 ...
- bzoj 1774: [Usaco2009 Dec]Toll 过路费 ——(改)floyd
Description 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦思生 财之道.为了发财,他设置了一系列的规章制度,使得任何一只奶牛在农场中的道路行走,都 要向农夫 ...
- 12.13记录//QQDemo示例程序源代码
笔记的完整版pdf文档下载地址: https://www.evernote.com/shard/s227/sh/ac692160-68c7-4149-83ea-0db5385e28b0 ...
- 如果你也想写个完整的 Vue 组件项目
1.一个完整的组件项目需要什么? 必要的: 组件构建方式 ( webpack / rollup 之类 ),并提供至少一个主流的输出格式 (ESModule) Demo 及 Demo 源码 文档,可以是 ...
- Spring 路由地址的基本使用
1.下面是spring的使用基本框架连接 https://www.cnblogs.com/HD/p/4103239.html
- CursorFileManager对cursor文件的读写
public class CursorFileManager implements CursorManager{public void write(String key, LongCursor cur ...