【问题标题】:What are the cases when should.deep.equal fails but comparison using JSON.stringify works fine?什么情况下 should.deep.equal 失败但使用 JSON.stringify 比较可以正常工作?
【发布时间】:2016-08-15 12:40:07
【问题描述】:

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

【问题讨论】:

  • 您能在您的问题中添加一些示例对象吗?
  • 我不熟悉should.js,但他们是否可能不仅检查值,还检查引用?下划线问题好像和this SO question一样。

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


【解决方案1】:

我已经意识到问题所在。这是因为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'})

失败

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2011-04-20
    • 2019-02-25
    相关资源
    最近更新 更多