gpt4 book ai didi

javascript - 如何在 Chai 中使用 include?

转载 作者:行者123 更新时间:2023-11-30 11:36:18 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何传递对象并使用来自 chai 的 that.includesto.include 检查对象是否在响应中

我写了一个简单的 fiddle 来检查我的问题:

https://jsfiddle.net/balexandre/4Loupnjk/2/

https://jsfiddle.net/balexandre/4Loupnjk/5/带有 .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: expected { Object (results) } to have property 'results' of { Object (total_rejected_recipients, total_accepted_recipients) }, but got { Object (total_rejected_recipients, total_accepted_recipients, ...) }
at Context.<anonymous> (:73:18)

虽然第一次使用这个框架,但可能是问题:)

最佳答案

首先,您应该使用 deep.include 断言,因为您在其中有一个深层对象。

无论如何,这看起来像是一个错误。实现它的 github 票证位于 here和相关的提交 here .

这个断言的测试覆盖率在这里:

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: { } });

最好在 chai 中打开问题存储库,并临时使用 chai-subset包。

关于javascript - 如何在 Chai 中使用 include?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44288568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com