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
本文介绍Node.js内置的assert模块及Mocha框架的基本使用方法。assert模块提供了丰富的断言函数,如deepStrictEqual用于深度比较两个对象是否相等;Mocha支持TDD风格测试,通过describe和it定义测试套件与案例。
226

被折叠的 条评论
为什么被折叠?



