Javascript 柴深平等,平等不工作
有些人认为它不起作用Javascript 柴深平等,平等不工作,javascript,mocha.js,chai,Javascript,Mocha.js,Chai,有些人认为它不起作用 promise = doSomething() expect(promise).to.eventually.equal(obj) expect(promise).to.eventually.deep.equal(obj) 但是在断言错误中我得到了这个 AssertionError:expected{a:2',b:3}等于{a:2',b:3} 顺便说一句,我已经尝试了should,我得到了相同的结果我猜promise返回的值可能是JSON字符串,比如 “{a:'2',b
promise = doSomething()
expect(promise).to.eventually.equal(obj)
expect(promise).to.eventually.deep.equal(obj)
但是在断言错误中我得到了这个
AssertionError:expected{a:2',b:3}等于{a:2',b:3}
顺便说一句,我已经尝试了
should
,我得到了相同的结果我猜promise返回的值可能是JSON字符串,比如
“{a:'2',b:'3'}”
我以前见过这种情况。如果是这样,请在执行深度相等操作之前尝试
JSON.parse()
我是在promiseJSON.parse(JSON.stringify(response))
中这样做的,这使它能够工作,因此根据这个问题,我假设chai正在检查对象的引用,这对我来说毫无意义
不是我期望的解决方案,但对我来说很有效,是有人有更好的解决方案,请分享 它使用一个简单的返回expect(Promise.resolve({a:2',b:3})).to.finally.deep.equal({a:2',b:3})代码>。您确定结果确实与预期输出匹配吗?您确定没有同时运行这两个断言吗?使用deep
标志是正确的,因为您不应该期望对象相等。不,我不会同时运行这两个@Jacob是的,当使用时,您的解决方案也适用于我,但不通过我的承诺,奇怪的是断言错误得到相同的值。您使用的插件是什么<我使用的是code>chai as Promission
。我猜promise返回的值可能是JSON
字符串,比如“{a:'2',b:'3'}”
,如果是,请在深度相等之前尝试JSON.parse()
此值。。。