美文网首页
初识前端测试2 -- node中的assert模块

初识前端测试2 -- node中的assert模块

作者: 前端开发小匠 | 来源:发表于2018-06-04 21:45 被阅读0次

    NodeJS 中assert模块,下面是 assert 中的一些常用API。

    • assert(value[, message])
    • assert.ok(value[, message])
    • assert.equal(actual, expect[, message])
    • assert.notEqual(actual, expected[, message])
    • assert.strictEqual(actual, expect[, message])
    • assert.notStrictEqual(actial, expected[, message])
    • assert.deepEqual(actual, expect[, message])
    • assert.notDeepEqual(actual, expected[, message])
    • assert.deepStrictEqual(actual, expect[, message])
    • assert.notDeepStrictEqual(actual, expected[, message])
    • assert.throws(block[, error][, message])
    • assert.doesNotThrow(block[, error][, message])

    assert(value[, message])

    断言 value 的值是否为true,这里的等于判断使用的是 == 而不是 ===。message 是断言描述,为可选参数。

    const assert = require('assert');
    assert(true);
    

    assert.ok(value[, message])

    使用方法同 assert(value[, message])

    assert.equal(actual, expect[, message])

    预期 actual 与 expect值相等。equal用于比较的 actual 和 expect 是基础类型(string, number, boolearn, null, undefined)的数据。其中的比较使用的是 == 而不是 ===。

    it('assert.equal', () => {
      assert.equal(null, false, 'null compare with false');  // 报错
      assert.equal(null, true, 'null compare with true');  // 报错
      assert.equal(undefined, false, 'undefined compare with false'); // 报错
      assert.equal(undefined, true, 'undefined compare with true'); // 报错
      assert.equal('', false, '"" compare with false');  // 正常
    })
    

    notEqual(actual, expected[, message])

    用法同 assert.equal(actual, expect[, message]) 只是对预期结果取反(即不等于)。

    assert.strictEqual(actual, expect[, message])

    用法同 assert.equal(actual, expect[, message]) 但是内部比较是使用的是 === 而不是 ==。

    assert.notStrictEqual(actial, expected[, message])

    用法同 assert.strictEqual(actual, expect[, message]) 只是对预期结果取反(即不严格等于)。

    it('assert.strictEqual', () => {
      assert.strictEqual('', false); // 报错
    })
    

    assert.deepEqual(actual, expect[, message])

    deepEqual 方法用于比较两个对象。比较的过程是比较两个对象的 key 和 value 值是否相同, 比较时用的是 == 而不是 ===。

    it('assert.deepEqual', () => {
      const a = { v: 'value' };
      const b = { v: 'value' };
      assert.deepEqual(a, b);
    })
    

    assert.notDeepEqual(actual, expected[, message])

    用法同 assert.deepEqual(actual, expect[, message]) 只是对预期结果取反(即不严格深等于)。

    assert.deepStrictEqual(actual, expect[, message])

    用法同 assert.deepEqual(actual, expect[, message]) 但是内部比较是使用的是 === 而不是 ==。

    assert.notDeepStrictEqual(actual, expected[, message])

    用法同 assert.deepStrictEqual(actual, expect[, message]) 只是对结果取反(即不严格深等于)。

    assert.throws(block[, error][, message])

    错误断言与捕获, 断言指定代码块运行一定会报错或抛出错误。若代码运行未出现错误则会断言失败,断言异常。

    it('throws', () => {
      var fun = function() {
        xxx
      };
      assert.throws(fun, 'fun error');
    })
    

    assert.doesNotThrow(block[, error][, message])

    错误断言与捕获, 用法同 throws 类似,只是和 throws 预期结果相反。断言指定代码块运行一定不会报错或抛出错误。若代码运行出现错误则会断言失败,断言异常。

    it('throws', () => {
      var fun = function() {
        xxx
      };
      assert.doesNotThrow(fun, 'fun error');
    })
    

    相关文章

      网友评论

          本文标题:初识前端测试2 -- node中的assert模块

          本文链接:https://www.haomeiwen.com/subject/mjcusftx.html