当should.deep.equal失败但是使用JSON.stringify的比较工作正常时会出现什么情况?

时间:2016-04-22 03:39:05

标签: javascript angularjs unit-testing chai should.js

函数返回一个对象数组。当我使用JSON.stringify将实际结果与预期结果进行比较时,值是相同的。但是,使用should.deep.equal_.isEqual的比较失败。有人有这样的问题吗?

1 个答案:

答案 0 :(得分:0)

我已经意识到问题所在。这是因为JSON.stringify错过了undefined个值的字段。例如。将JSON.stringify应用于以下对象{field: 'value', undefinedField: undefined}的结果为{"field": "value"}。因此

JSON.stringify({field: 'value', undefinedField: undefined}) === JSON.stringify({field: 'value'})`

但是

{field: 'value', undefinedField: undefined}.should.deep.equal({field: 'value'})

失败