关于javascript:chai深度平等且无法正常工作

chai deep equal and equal not working

有点不管用

1
2
3
4
5
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"}

顺便说一句,我已经试过使用should,得到了相同的结果。


我想Promise返回的值可能是一串JSON,比如

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

我以前见过哪个案子。如果是这样,请在深度相等操作之前尝试JSON.parse()该值。


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

我在promise JSON.parse(JSON.stringify(response))中做了这个,这使得它可以工作,所以根据这个问题,如何将javascript对象复制到新变量而不是通过引用?我假设柴正在检查物体的参照物,这对我来说毫无意义。

不是我期望的解决方案,但对我有效,是有一个更好的解决方案,请分享。