gpt4 book ai didi

javascript - 按照 promise 用 Chai 测试拒绝

转载 作者:IT王子 更新时间:2023-10-29 03:16:35 26 4
gpt4 key购买 nike

我想测试一个返回 promise 的函数。

在这个特定的测试中,promise 预计会被包含经典 message 字段的 Error 对象拒绝(在这个测试中,它应该等于 "my error message") 和我添加的一个名为 code 的自定义字段,它是一个字符串(如“EACCESS”、“ERIGHT”等,在这个测试中它应该等于 “EFOO” )

我想为此使用 chai-as-promised。

return expect(foo()).to.eventually.be.rejectedWith("my error message");

此断言有效,但现在我也想测试 code 字段。
如何做到这一点?

最佳答案

如果您使用 Chai-As-Promised (正如你所说),然后它允许链接 rejectedWith - 并将链断言对象设置为错误对象 - 意味着 rejectedWith() 之后的任何内容现在要断言错误。这让您可以做一些很酷的事情,例如:

return expect(foo()).to.eventually
.be.rejectedWith("my error message")
.and.be.an.instanceOf(Error)
.and.have.property('code', 'EFOO');

一些 chai 方法也是链式的,因此您可以使用它来对错误进行一些嵌套很深的断言:

return expect(foo()).to.eventually
.be.rejectedWith("my error message")
.and.have.property('stack')
.that.includes('myfile.js:30')

关于javascript - 按照 promise 用 Chai 测试拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29363455/

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