node.js学习之断言assert的使用示例

2020-06-17 07:05:15易采站长站整理
将原型对象列入了比较对象】

4.2 assert.strictEqual(actual, expected[, message])

strictEqual()
equal()
的加强,考虑了数据类型;如果
actual === expected
,则断言通过,否则抛出AssertionError,
message?message:
默认错误信息。


assert.strictEqual(1, 2);
// 抛出 AssertionError: 1 === 2

assert.strictEqual(1, 1);
// 测试通过。

assert.strictEqual(1, '1');
// 抛出 AssertionError: 1 === '1'

assert.equal(1, '1');
// 测试通过。

【提示!!】对引用类型还是永远通不过【

strictEqual()】
断言测试

五. 判断预期值和实际值不相等(!=)

上面总结到了判断预期值和实际值相等,这儿总结一下判断预期值和实际值不想等的两个测试函数,实际上就是上面 (三) 的逆运算。

5.1 assert.notEqual(actual, expected[, message])

notEqual()】
为 【
equal() 
】的逆运算,如果
actual!= expected 
则断言通过,同样对于值类型是单纯对值进行比较,对应引用类型比较的是值得引用


assert.notEqual("1", "2");
// 断言通过

assert.notEqual("1", 2);
// 断言通过

assert.notEqual("1", 1);
// AssertionError [ERR_ASSERTION]: '1' != 1

上面代码是对值类型进行的比较,第三个表达式的默认信息可以看出内部使用的是(!=)


assert.notEqual({ a: "foo" }, { a: "foo" });

assert.notEqual(() => { }, () => { });

assert.notEqual([], []);

上面的代码是对引用类型进行的断言测试,【

notEqual()
】对于两个对象的测试通过是一个【恒成立】的结果。

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

notDeepEqual() 
】为 【
deepEqual() 
】的逆运算,如果
actual!= expected 
则断言通过,不同于
notEqual()
的是对于引用类型是对值进行判断,不比对原型、不可枚举属性,只比对自有可枚举属性,断言通过。


const obj1 = { a: "foo" },
obj2 = { b: "bar" },
obj3 = Object.create(obj1);

assert.notDeepEqual(obj1,obj1,'actual equal to expected');
// AssertionError [ERR_ASSERTION]: actual equal to expected