柴深平等,不平等

时间:2016-01-19 00:42:32

标签: javascript mocha chai

chai如何不起作用

promise = doSomething()

expect(promise).to.eventually.equal(obj)

expect(promise).to.eventually.deep.equal(obj)

但是在断言错误中我得到了这个

AssertionError: expected {a: "2", b: "3"} to equal {a: "2", b: "3"}

BTW我已尝试使用should并得到相同的结果

2 个答案:

答案 0 :(得分:2)

我想也许从promise返回的值是JSON字符串,比如

"{a: '2', b: '3'}"

我之前遇到过哪种情况。如果是这样,请在深度相等操作之前尝试JSON.parse()此值。

答案 1 :(得分:1)

似乎chai检查的不仅仅是对象结构。

我在承诺JSON.parse(JSON.stringify(response))中做了这个并且它使它工作,所以根据这个问题How to copy JavaScript object to new variable NOT by reference?我假设chai正在检查对象的引用,这对我来说根本没有意义

不是我期待的解决方案,但对我有用,是有人有更好的解决方案请分享。