Pra*_*ava 6 javascript testing mocha.js chai
在Chai 断言库中,当我们已经有“ assert.deepEqual() ”和“ assert.strictEqual() ”用于严格和深度相等断言时,“assert.equal()”有什么用?还提到“assert.equal()”使用非严格相等。非严格平等和深度平等有什么区别?为什么我们不能只使用“deepEqual”而不是“equal”?
当您查看这些函数的Chai 文档.deep时,您会得到非常清晰的描述:
导致链中后续的所有 .equal、.include、.members、.keys 和 .property 断言使用深度相等而不是严格 (===) 相等。
当您使用 时equal,Chai 使用===比较。因此,在比较对象时,Chai 会检查引用。
当您使用 时deepEqual,Chai 将沿着对象层次结构向下比较每个属性的每个值。
例子:
const a = {"a": "a"};
const b = {"a": "a"};
expect(a).to.equal(b); // false, as a refers to a different object than b
expect(a).to.deep.equal(b); // true, as the value of every property of a and b equals
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6729 次 |
| 最近记录: |