【发布时间】:2016-04-24 07:54:56
【问题描述】:
有些柴是怎么不工作的
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 并且得到了相同的结果
【问题讨论】:
-
简单的
return expect(Promise.resolve({ a: "2", b: "3" })).to.eventually.deep.equal({ a: "2", b: "3" });对我有用。你确定结果真的符合预期的输出吗? -
你确定你没有同时运行这两个断言吗?使用
deep标志是正确的,因为您不应该期望对象相等。 -
不,我没有同时运行两者。 @Jacob 是的,你的解决方案也适用于我,使用
when但我的承诺没有,奇怪的是断言错误得到了相同的值。 -
你用的是什么插件?
chai-as-promised是我使用的。 -
我猜promise返回的值可能是
JSON的字符串,比如"{a: '2', b: '3'}",如果是这样,在deep equal之前试试JSON.parse()这个值...
标签: javascript mocha.js chai