4.2 assert.strictEqual(actual, expected[, message])
strictEqual()是
equal()的加强,考虑了数据类型;如果
actual === expected,则断言通过,否则抛出AssertionError,
message?message:默认错误信息。
assert.strictEqual(1, 2);
// 抛出 AssertionError: 1 === 2assert.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









