2015-02-10 81 views
0

我正在使用摩卡和tdd UI和assert。我想在我的测试中比较一个深度嵌套的对象。如何在测试期间看到深度嵌套对象中的差异?

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

的错误我得到的回复是:

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

我想是一个差异 - 例如,boom以红色突出显示,所以我可以看到这是造成问题。特别是因为我的对象比这个例子大得多。 如何查看深度嵌套对象中的具体差异?

回答

0

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

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

这将显示在对象开始不同。