1.全局安装 mochahtml
npm install mocha -g复制代码
2.nodejs assert 简介node
strict模式:正则表达式
当使用 strict
模式时,任何 assert
函数都会使用严格函数模式的等式。 因此 assert.deepEqual()
会等同于 assert.deepStrictEqual()
。npm
使用方式:const assert = require('assert').strict;api
assert(value[, message]):assert.ok()
的别名。promise
value
<any> 要检查是否为真的值。
message
<string> |
<Error>
assert.deepStrictEqual(actual, expected[, message]):测试 actual
参数与 expected
参数是否深度相等。 深度相等意味着子对象中可枚举的自身属性也会按如下规则递归地比较。bash
assert.fail([message]):抛出 AssertionError
,并带上提供的错误信息或默认的错误信息。 若是 message
参数是 Error
的实例,则会抛出它而不是 AssertionError
。异步
assert.ifError(value):若是 value
不为 undefined
或 null
,则抛出 value
。 可用于测试回调函数的 error
参数。 堆栈踪影会包含传入 ifError()
的错误的全部帧,包括潜在的 ifError()
自身新增的帧。函数
assert.notDeepStrictEqual(actual, expected[, message]):测试 actual
参数与 expected
参数是否不深度全等。 与 assert.deepStrictEqual()
相反。测试
assert.ok(value[, message]):测试 value
是否为真值。 至关于 assert.equal(!!value, true, message)
。
assert.rejects(block[, error][, message]):等待 block
的 promise 完成,若是 block
是一个函数,则当即调用该函数并等待返回的 promise 完成,而后检查 promise 是否被 reject。若是 block
是一个函数且同步地抛出一个错误,则 assert.rejects()
会返回一个被 reject 的 Promise
并传入该错误。 若是该函数没有返回一个 promise,则 assert.rejects()
会返回一个被 reject 的 Promise
并传入 ERR_INVALID_RETURN_VALUE
错误。 以上两种状况都会跳过错误处理函数。
该函数至关于 assert.throws()
,除了须要等待完成的异步特性。
error
能够是 Class
、RegExp
、校验函数、每一个属性都会被测试的对象、或每一个属性(包括不可枚举的 message
和 name
属性)都会被测试的错误实例。
若是指定了 message
,则当 block
没被 reject 时,message
参数会做为 AssertionError
的错误信息。
assert.strictEqual(actual, expected[, message]):使用 SameValue比较法测试 actual
参数与 expected
参数是否全等。
assert.throws(block[, error][, message]):断言 block
函数会抛出错误。error
能够是 Class
、RegExp
、校验函数、每一个属性都会被测试是否深度全等的校验对象、或每一个属性(包括不可枚举的 message
和 name
属性)都会被测试是否深度全等的错误实例。 当使用对象时,能够使用正则表达式来校验字符串属性。若是指定了 message
参数,则当 block
函数不抛出错误时,message
参数会做为 AssertionError
的错误信息。
3.mocha 对于TDD api 简介
describe(description,fun):称为测试套件,表示一组相关的测试description:测试套件的名称,fun:执行函数。
it(description,fun):表示一个单独的测试,是测试的最小单位。description:测试用例名称,fun:执行函数。
done():用于基于回调函数的异步测试,当done()被屡次执行则抛出错误。
describe块中 测试用例钩子
describe('hooks', function() {
before(function() {
// 在本区块的全部测试用例以前执行
});
after(function() {
// 在本区块的全部测试用例以后执行
});
beforeEach(function() {
// 在本区块的每一个测试用例以前执行
});
afterEach(function() {
// 在本区块的每一个测试用例以后执行
});
// test cases
});复制代码
参考:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html
https://mochajs.org
http://nodejs.cn/api/assert.html