我使用 Mocha 和 should 作为 Node js 模块的测试框架。 到目前为止它工作正常,现在我需要断言两个对象相等。 我收到错误(测试失败),而对象相同(我使用 webStorm 10)并且 Diff 窗口显示两个对象并且它们相同(我还在 diff 窗口中看到消息内容相同...)
它可能是什么,有办法解决这个问题吗?
我尝试了两个都失败了
should(inObjBefore).be.exactly({env: outObjAfter});
inObjBefore.should.be.exactly({ env: outObjAfter});
最佳答案
exactly
使用严格相等进行精确比较,即 ===
。
在 javascript 中,对象是通过引用存储的,而不是通过值存储的。因此,当比较两个对象时,只有当它们具有相同的引用时,它们才会彼此相等:
var a = {
x: 10
};
a === a // true
a === { x: 10 } // false
因此,您要么需要与同一对象进行比较,要么可以使用deepEqual
。
关于javascript - Mocha 和应该断言并没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32128608/