Javascript 如何使用包括在柴?
我正在试图弄清楚如何传递对象,并使用chai中的Javascript 如何使用包括在柴?,javascript,mocha.js,chai,Javascript,Mocha.js,Chai,我正在试图弄清楚如何传递对象,并使用chai中的that.includes或to.includes检查对象是否在响应中 我写了一个简单的提琴来检查我的问题: 带有.deep标志 var e = { "results": { "total_rejected_recipients": 0, "total_accepted_recipients": 1, "id":"102618457586465882" } }; 根据我的理解,e对象实际上应该包含较小的对象。。
that.includes
或to.includes
检查对象是否在响应中
我写了一个简单的提琴来检查我的问题:
带有.deep
标志
var e = {
"results": {
"total_rejected_recipients": 0,
"total_accepted_recipients": 1,
"id":"102618457586465882"
}
};
根据我的理解,e
对象实际上应该包含较小的对象。。。还是我遗漏了什么
expect(e).to.include({
"results": {
"total_rejected_recipients": 0,
"total_accepted_recipients": 1
}
});
但我得到了一个错误:
assertionError:预期{Object(results)}的属性“results”为{Object(total_-rejected_-recipients,total_-accepted_-recipients)},但得到了{Object(total_-rejected_-recipients,total_-accepted_-recipients,}
在上下文中。(:73:18)
不过,第一次使用这个框架时,可能会遇到这样的问题:)首先,您应该使用
deep.include
断言,因为其中有一个deep对象
不管怎样,这看起来像是一个bug。实现这一点的github票证所在位置以及相关提交
此断言的测试覆盖率如下所示:
expect({foo: obj1, bar: obj2}).to.deep.include({foo: {a: 1}});
expect({foo: obj1, bar: obj2}).to.deep.include({foo: {a: 1}, bar: {b: 2}});
expect({foo: obj1, bar: obj2}).to.not.deep.include({foo: {a: 9}});
expect({foo: obj1, bar: obj2}).to.not.deep.include({foo: {z: 1}});
expect({foo: obj1, bar: obj2}).to.not.deep.include({baz: {a: 1}});
expect({foo: obj1, bar: obj2}).to.not.deep.include({foo: {a: 1}, bar: {b: 9}});
但是,它在以下情况下中断:
expect({ foo: obj1, bar: obj2 }).to.deep.include({ foo: { a: 1 }, bar: { } });
最好在存储库中打开问题,并临时使用该包。在我看来像个bug;暂时的替代方法是使用.created as-even with
.deep
仍然抛出相同的错误:(但是感谢您指出我留下了什么。
expect({ foo: obj1, bar: obj2 }).to.deep.include({ foo: { a: 1 }, bar: { } });