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/ 嗯,请支持正版:
随机推荐
- [解决] Error Code: 1044. Access denied for user 'root'@'%' to database
今天在测试集群用的mysql上,遇到个权限的问题: SQLException : SQL state: 42000 com.mysql.jdbc.exceptions.jdbc4.MySQLSynta ...
- Python学习笔记(Django篇)——3、创建第一个数据库模型
Django里面集成了SQLite的数据库,对于初期研究来说,可以用这个学习. 第一步,创建数据库就涉及到建表等一系列的工作,在此之前,要先在cmd执行一个命令: python manage.py ...
- Python爬虫学习笔记之极限滑动验证码的识别
代码: import time from io import BytesIO from PIL import Image from selenium import webdriver from sel ...
- PHP 数据加密
<?php /** * * 加密 * */ function lock_url($txt, $key = "aiteng") { $chars = "ABCDEFG ...
- Item 4 ----通过私有构造器强化不可实例化的能力
场景: 在创建工具类的时候,大部分是无需实例化的,实例化对它们没有意义.在这种情况下,创建的类,要确保它是不可以实例化的. 存在问题: 在创建不可实例化的类时,虽然没有定义构造器.但是,客户端在使 ...
- 【转载】Lua中实现类的原理
原文地址 http://wuzhiwei.net/lua_make_class/ 不错,将metatable讲的很透彻,我终于懂了. --------------------------------- ...
- [Unity]模拟雨水的折射效果
用GrabPass做的小玩具. 并不是真的计算了折射,只是简单地扰动了uv,对于雨水来说效果已经足够好了. Shader代码: Shader "Unlit/Rain" { Prop ...
- 聂老师的考验(反向bfs)
题目链接:http://113.240.233.2:8081/JudgeOnline/problem.php?id=1121 这个题看起来要多次使用bfs,其实只要换个思维就会发现这就是一个简单的bf ...
- POJ1014(多重背包)
Dividing Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 65044 Accepted: 16884 Descri ...
- gpio子系统和pinctrl子系统(中)
pinctrl子系统核心实现分析 pinctrl子系统的内容在drivers/pinctrl文件夹下,主要文件有(建议先看看pinctrl内核文档Documentation/pinctrl.txt): ...