should.deep.equal 失败但使用 JSON.stringify 比较工作正常的情况是什么?
What are the cases when should.deep.equal fails but comparison using JSON.stringify works fine?
一个函数returns一个对象数组。当我使用 JSON.stringify
将实际结果与预期结果进行比较时,值是相同的。但是使用 should.deep.equal
或 _.isEqual
的比较失败。有人遇到过这样的问题吗?
我已经意识到问题所在了。这是由于 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'})
失败
一个函数returns一个对象数组。当我使用 JSON.stringify
将实际结果与预期结果进行比较时,值是相同的。但是使用 should.deep.equal
或 _.isEqual
的比较失败。有人遇到过这样的问题吗?
我已经意识到问题所在了。这是由于 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'})
失败