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
并得到相同的结果
答案 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正在检查对象的引用,这对我来说根本没有意义
不是我期待的解决方案,但对我有用,是有人有更好的解决方案请分享。