柴承诺深度财产测试

问题描述 投票:1回答:1

我有一个插入表格并返回Promise的函数。我正在测试chai-as-promised重复插入被拒绝。我想测试的是拒绝和原因代码。当我运行该功能并记录console.log(err.reason.code)时,我得到ER_DUP_ENTRY。确认这对我的测试是足够的,所以我尝试断言如下:

expect(insertTable()).to.eventually.be.rejected.and.eventually.to.have.deep.property('reason',{code: 'ER_DUP_ENTRY'}).notify(done);

根据chaijs的说法,语法似乎是正确的。但是我的测试失败了:

AssertionError: expected { Object (status, reason) } to have deep property 'reason' of { code: 'ER_DUP_ENTRY' }, but got [Error: ER_DUP_ENTRY: Duplicate entry 'my_dupe' for key 'name_UNIQUE']

这似乎与我的控制台日志所说的属性相矛盾。

typescript chai chai-as-promised
1个回答
0
投票

在拒绝案件中,reasonchai-as-promised评估的对象。所以你的断言必须是:

return expect(insertTable()).to.eventually.be.rejected.and.have.property("code").equal('ER_DUP_ENTRY');

不要忘记返回等待履行承诺链的承诺

© www.soinside.com 2019 - 2024. All rights reserved.