Nodejs 断言 assert

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 不为 undefinednull,则抛出 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 能够是 ClassRegExp、校验函数、每一个属性都会被测试的对象、或每一个属性(包括不可枚举的 messagename 属性)都会被测试的错误实例。

若是指定了 message,则当 block 没被 reject 时,message 参数会做为 AssertionError 的错误信息。

    assert.strictEqual(actual, expected[, message]):使用 SameValue比较法测试 actual 参数与 expected 参数是否全等。

    assert.throws(block[, error][, message]):断言 block 函数会抛出错误。error 能够是 ClassRegExp、校验函数、每一个属性都会被测试是否深度全等的校验对象、或每一个属性(包括不可枚举的 messagename 属性)都会被测试是否深度全等的错误实例。 当使用对象时,能够使用正则表达式来校验字符串属性。若是指定了 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

相关文章
相关标签/搜索