Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用包括在柴?_Javascript_Mocha.js_Chai - Fatal编程技术网

Javascript 如何使用包括在柴?

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对象实际上应该包含较小的对象。。

我正在试图弄清楚如何传递对象,并使用chai中的
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: { } });