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');
})
网友评论