1.全局安装 mocha
npm install mocha -g复制代码
2.nodejs assert 简介
strict模式:
当使用 strict
模式时,任何 assert
函数都会使用严格函数模式的等式。 所以 assert.deepEqual()
会等同于 assert.deepStrictEqual()
。
使用方式:const assert = require('assert').strict;
assert(value[, message]):assert.ok()
的别名。
value
<any> 要检查是否为真的值。
message
<string> |
<Error>
assert.deepStrictEqual(actual, expected[, message]):测试 actual
参数与 expected
参数是否深度相等。 深度相等意味着子对象中可枚举的自身属性也会按以下规则递归地比较。
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