assert.deepEqual()

添加版本:1.0.0.

描述

deepEqual( actual, expected, message = "" )

递归且严格的比较,考虑所有自身和继承的属性。

名称 描述
实际值 正在测试的表达式
预期值 已知的比较值
message (字符串) 实际表达式的简短描述

此断言比较传递的完整对象。对于原始值,执行严格比较。对于对象,对象标识被忽略,而是使用所有自身和继承属性的递归比较。这意味着数组、普通对象和任意类实例对象都可以以这种方式进行比较。

深度比较包括对 Date 对象、正则表达式 (RegExp)、NaN 以及 ES6 特性(如 Symbol、Set 和 Map 对象)的内置支持。

要断言仅对自身属性的严格相等性,请参考 assert.propEqual()

assert.notDeepEqual() 可用于检查不等式。

示例

验证给定对象的属性和值。

QUnit.test('passing example', assert => {
  const result = { foo: 'bar' };

  assert.deepEqual(result, { foo: 'bar' });
});
QUnit.test('failing example', assert => {
  const result = {
    a: 'Albert',
    b: 'Berta',
    num: 123
  };

  // fails because the number 123 is not strictly equal to the string "123".
  assert.deepEqual(result, {
    a: 'Albert',
    b: 'Berta',
    num: '123'
  });
});