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

相關文章
相關標籤/搜索