如何在测试期间看到深层嵌套对象的差异?

时间:2015-02-10 10:13:04

标签: node.js tdd mocha assert

我正在使用Mocha和tdd用户界面以及assert。我希望在测试中比较一个深度嵌套的对象。

var actual = {'foo': {'bar': 'baz'}}
var expected = {'foo': {'bar': 'boom'}}
assert.deepEqual(actual, expected)

我得到的错误是:

AssertionError: {"foo":{"bar":"baz"}} deepEqual {"foo":{"bar":"boom"}}

我想要的是差异 - 例如,boom以红色突出显示,因此我可以看到导致问题的原因。特别是因为我的对象比这个例子大很多。 如何查看深层嵌套对象中的具体差异?

1 个答案:

答案 0 :(得分:0)

序列化对象并比较字符串的工作原理:

var assertDeepEqual = function(actual, expected){
    assert.deepEqual(JSON.stringify(actual, null, 2), JSON.stringify(expected, null, 2))
}

这将显示对象开始不同的位置。