在前端领域,我们经常需要编写测试代码来验证我们编写的代码是否正确。在编写测试代码时,我们需要大量使用断言(assertion)来判断代码的正确性。而 @0x/assert
就是一个专门用于前端测试中的断言库。
安装
使用 npm
进行安装:
npm install @0x/assert
使用示例
导入 assert
模块:
const assert = require('@0x/assert');
然后,就可以使用其中的各种断言函数了:
assert.equal(actual, expected, message?)
判断两个值是否相等。如果不相等,抛出 AssertionError
。
assert.equal(1 + 2, 3); assert.equal('hello', 'world', '这两个字符串不相等!');
assert.notEqual(actual, expected, message?)
判断两个值是否不相等。如果相等,抛出 AssertionError
。
assert.notEqual(1 + 2, 4); assert.notEqual('hello', 'hello world', '这两个字符串相等!');
assert.ok(value, message?)
判断一个值是否为真值。如果不是,抛出 AssertionError
。
-- -------------------- ---- ------- ---------------- ------------- -------------- -------------- ------------------- ---------------- ------------- --------------- ------------- -------------------- ------------- ------------ ------------- ------------- -------------展开代码
assert.notOk(value, message?)
判断一个值是否为假值。如果不是,抛出 AssertionError
。
-- -------------------- ---- ------- -------------------- ------------------- ------------------------ ---------------- ----------------- ------------------ ------------- --------------- ------------- ---------------- ------------- ---------------- ------------- --------------------- -------------展开代码
assert.strictEqual(actual, expected, message?)
判断两个值是否严格相等。如果不相等,抛出 AssertionError
。
assert.strictEqual(1 + 2, 3); assert.strictEqual('hello', 'hello'); assert.strictEqual(1, '1', '这两个值应该是严格相等的!');
assert.notStrictEqual(actual, expected, message?)
判断两个值是否不严格相等。如果相等,抛出 AssertionError
。
assert.notStrictEqual(1 + 2, '3'); assert.notStrictEqual('hello', 'world'); assert.notStrictEqual(1, 1, '这两个值应该不相等!');
assert.deepEqual(actual, expected, message?)
判断两个对象是否深度相等。如果不相等,抛出 AssertionError
。判断两个对象是否相等时,会递归地比较它们的各个属性值。
assert.deepEqual( { a: 1, b: [2, 3] }, { a: 1, b: [2, 3] } ); assert.deepEqual( { a: 1, b: { c: 2, d: [3, 4] } }, { a: 1, b: { c: 2, d: [3, 4] } } );
assert.notDeepEqual(actual, expected, message?)
判断两个对象是否不深度相等。如果相等,抛出 AssertionError
。
assert.notDeepEqual( { a: 1, b: [2, 3] }, { a: 1, b: [3, 2] } ); assert.notDeepEqual( { a: 1, b: { c: 2, d: [3, 4] } }, { a: 1, b: { c: 2, d: [4, 3] } } );
assert.isAbove(actual, expected, message?)
判断一个值是否大于另一个值。如果不是,抛出 AssertionError
。
assert.isAbove(4, 2); assert.isAbove('world', 'hello'); assert.isAbove(2, 2, '这个值应该大于 2!'); assert.isAbove(1, 2, '这个值应该大于 2!');
assert.isBelow(actual, expected, message?)
判断一个值是否小于另一个值。如果不是,抛出 AssertionError
。
assert.isBelow(2, 4); assert.isBelow('hello', 'world'); assert.isBelow(2, 2, '这个值应该小于 2!'); assert.isBelow(2, 1, '这个值应该小于 1!');
assert.isAtLeast(actual, expected, message?)
判断一个值是否大于或等于另一个值。如果不是,抛出 AssertionError
。
assert.isAtLeast(4, 2); assert.isAtLeast('world', 'hello'); assert.isAtLeast(2, 2); assert.isAtLeast(1, 2, '这个值应该大于等于 2!');
assert.isAtMost(actual, expected, message?)
判断一个值是否小于或等于另一个值。如果不是,抛出 AssertionError
。
assert.isAtMost(2, 4); assert.isAtMost('hello', 'world'); assert.isAtMost(2, 2); assert.isAtMost(2, 1, '这个值应该小于等于 1!');
每个方法都接受一个可选的 message
参数,用于在断言失败时输出错误信息。
总结
使用 @0x/assert
可以大大简化我们编写测试代码的工作。在编写测试代码时,一定要充分利用断言库,进行充分的测试,以保证代码的正确性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/107757