zoukankan      html  css  js  c++  java
  • assert.deepEqual()

    assert.deepEqual(actual, expected[, message])

    深度比较 actual 和 expected 参数,使用比较运算符(==)比较原始值。
    只考虑可枚举的“自身”属性。deepEqual() 的实现不测试对象的原型,连接符号,或不可枚举的属性。这会导致一些潜在的出人意料的结果。例如,下面的例子不会抛出 AssertionError,因为 Error 对象的属性是不可枚举:

    // WARNING: This does not throw an AssertionError!
    assert.deepEqual(Error('a'), Error('b'));
    

    深度比较意味着子对象的可枚举“自身”的属性也会进行评估:

    const assert = require('assert');
    
    const obj1 = {
        a: {
            b: 1
        }
    };
    const obj2 = {
        a: {
            b: 2
        }
    };
    const obj3 = {
        a: {
            b: 1
        }
    }
    const obj4 = Object.create(obj1);
    
    assert.deepEqual(obj1, obj1);
    // OK, object is equal to itself
    
    assert.deepEqual(obj1, obj2);
    // AssertionError: { a: { b: 1 } } deepEqual { a: { b: 2 } }
    // values of b are different
    
    assert.deepEqual(obj1, obj3);
    // OK, objects are equal
    
    assert.deepEqual(obj1, obj4);
    // AssertionError: { a: { b: 1 } } deepEqual {}
    // Prototypes are ignored
    

    如果这两个值不相等,将会抛出一个带有 message 属性(等于该 message 参数的值)的 AssertionError。如果 message 参数为 undefined,将会分配一个默认的错误消息。

  • 相关阅读:
    最小生成树计数
    Tree
    NOJ 成绩排名
    NOJ 成绩排名
    NOJ 成绩排名
    NOJ 成绩排名
    NOJ Physics
    NOJ Physics
    NOJ Physics
    NOJ Physics
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9908346.html
Copyright © 2011-2022 走看看