参考大神阮一峰的文章《测试框架 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测试学习的更多相关文章

  1. mocha测试框架-truffle

    https://mochajs.org/
学习网址:
https://www.jianshu.com/p/9c78548caffa
https://www.jb51.net/article/10646 ...

  2. 使用mocha测试

    学习了MOCHA官网的示例,将学习成果记录一下.[原文+例子:使用mocha测试] mocha是什么 Mocha是一个跑在node和浏览器上的javascript测试框架,让异步测试变得简单有趣, 并 ...

  3. Nodejs实战 —— 测试 Node 程序

    读 <node.js实战2.0>,进行学习记录总结. 当当网购买链接 豆瓣网1.0链接 测试 Node 程序 本章内容 用 Node 的 assert 模块测试 使用其他断言库 使用 No ...

  4. phpunit测试学习 2 分类总结断言涉及哪些方面

    11:27 2015/12/9phpunit测试学习 2,  分类总结断言涉及哪些方面先推荐windows快速打开某处路径下的cmd,进入测试状态:可以在文件夹中,按住Shift+鼠标右键,这时候你就 ...

  5. phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识

    16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结  一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错 ...

  6. 添加 node mocha 测试模块

    1.mocha  支持TDD 和 BDD两种测试风格 2.引用assert模块  此模块是node的原生模块,实现断言的功能,作用是声明预期的结果必须满足 3.mocha测试用例中可以使用第三方测试库 ...

  7. Web安全测试学习手册-业务逻辑测试

    i春秋作家:Vulkey_Chen 首先感谢朋友倾璇的邀请 http://payloads.online/archivers/2018-03-21/1 ,参与了<web安全测试学习手册>的 ...

  8. 开始nodejs+express的学习+实践(1)

    开始nodejs+express的学习+实践(1) 开始nodejs+express的学习+实践(2) 开始nodejs+express的学习+实践(3) 开始nodejs+express的学习+实践 ...

  9. IntelliJ IDEA测试学习网站

    IntelliJ IDEA测试学习网站 http://idea.lanyus.com/  嗯,请支持正版:

随机推荐

  1. 51Nod 1062 序列中最大的数 | 简单DP

    #include "iostream" #include "cstdio" using namespace std; #define LL long long ...

  2. 【BZOJ】1609: [Usaco2008 Feb]Eating Together麻烦的聚餐

    [算法]动态规划 [题解]DP有个特点(递推的特点),就是记录所有可能状态然后按顺序转移. 最优化问题中DP往往占据重要地位. f[i][j]表示前i头奶牛,第i头改为号码j的最小改动数字,这样每头奶 ...

  3. 崩坏3mmd中的渲染技术研究

    http://youxiputao.com/articles/11839 主要是参考该篇文章做一个微小的复盘. 漫反射与高光 文章中的漫反射与高光并不是类似于普通的 resultCol = Diffu ...

  4. python初步学习-python数据类型之strings(字符串)

    数据类型-字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号(''或者"")来创建字符串 var1 = 'Hello World!' var2 = "P ...

  5. IE浏览器Bug总结

    每每在网上搜索IE浏览器Bug时,总是骂声一片,特别是前端工程师,每天都要面对,IE浏览器特别是IE6,存在很多Bug,对Web标准的支持也拖后腿,但不可否认,IE浏览器是曾经的霸主,它的贡献也是巨大 ...

  6. Python 开发中easy_install的安装及使用

    easy_install是一个python的扩展包,主要是用来简化python安装第三方安装包,在安装了easy_install之后,安装python第三方安装包就只需要在命令行中输入:easy_in ...

  7. mysql not null default / default

    not null default 说明不能是NULL, 并设置默认值 default 设置默认值 , 但值也可能是NULL mysql> create table test (id int, n ...

  8. Exception 和 Error 包结构

  9. Python爬虫—破解JS加密的Cookie

    前言 在GitHub上维护了一个代理池的项目,代理来源是抓取一些免费的代理发布网站.上午有个小哥告诉我说有个代理抓取接口不能用了,返回状态521.抱着帮人解决问题的心态去跑了一遍代码.发现果真是这样. ...

  10. Vue组件-动态组件

    动态组件 通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,可以让多个组件使用同一个挂载点,并动态切换: <div id="app6"& ...