assert.propEqual()

添加版本:1.11.0.

描述

propEqual( actual, expected, message = "" )

使用严格比较来比较对象的自身属性。

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

propEqual 断言只比较对象的自身属性。这意味着预期值不需要是相同类的实例,也不需要继承相同的原型。这与 assert.deepEqual() 形成对比。

如果值不同,或者存在额外的属性,或者缺少某些属性,则此断言将失败。

此方法是递归的,可以通过普通对象比较任何嵌套或复杂对象。

另请参阅

示例

比较两个对象的属性值。

QUnit.test('example', assert => {
  class Foo {
    constructor () {
      this.x = 1;
      this.y = 2;
    }

    walk () {}
    run () {}
  }

  const foo = new Foo();

  // succeeds, own properties are strictly equal,
  // and inherited properties (such as which constructor) are ignored.
  assert.propEqual(foo, {
    x: 1,
    y: 2
  });
});

使用经典的 ES5 语法

QUnit.test('example', function (assert) {
  function Foo () {
    this.x = 1;
    this.y = 2;
  }
  Foo.prototype.walk = function () {};
  Foo.prototype.run = function () {};

  var foo = new Foo();

  // succeeds, own properties are strictly equal.
  var expected = {
    x: 1,
    y: 2
  };
  assert.propEqual(foo, expected);
});