assert.propEqual()
バージョン追加: 1.11.0.
説明
propEqual( actual, expected, message = "" )
厳密な比較を使用してオブジェクトの独自のプロパティを比較します。
名前 | 説明 |
---|---|
実際の |
テストされる式 |
予想される |
既知の比較値 |
message (文字列) |
実際の式の簡潔な説明 |
propEqual
アサーションは、オブジェクトの独自のプロパティのみを比較します。つまり、期待される値は同じクラスのインスタンスである必要はなく、同じプロトタイプを継承する必要もありません。これは assert.deepEqual()
とは対照的です。
値が異なっていたり、余分なプロパティがあったり、一部のプロパティが欠落していると、このアサーションは失敗します。
このメソッドは再帰的で、単純なオブジェクトを介して任意のネストされた複雑なオブジェクトを比較できます。
参照してください
- プロパティのサブセットのみをチェックするには、
assert.propContains()
を使用します。 - 代わりにオブジェクトプロパティの不平等性をテストするには、
assert.notPropEqual()
を使用します。
例
2つのオブジェクトのプロパティ値を比較します。
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);
});