gpt4 book ai didi

asynchronous - Chai测试.then内部是否抛出错误

转载 作者:行者123 更新时间:2023-12-03 08:45:15 26 4
gpt4 key购买 nike

当来自salesforce的查询返回为空数组时,我们将其捕获在.then()内部,并引发错误,我可以在console.log中查看并在.catch()内部进行查看。但是,我很难测试该错误消息。

我已经尝试了chai-pro-promise和to.eventually.equal('some string'),但是作为AssertionError回来了:期望未定义等于'当前时段没有 Activity '。

cosnt campaignMember = {

getCampaignMembers: async () => {
await login();
return conn.sobject('CampaignMember')
.select('*')
.then((result) => {
if (!result[0]) {
throw Error('No campaigns for current period.');
}
return result;
})
.catch((err) => {
log.error(`Could not get paid current campaigns ${err}`);
});
},
}
module.exports = campaignMember

测试
it('should pass', async () => {
await otherAsyncMethod();
await expect(campaignMember.getCampaignMembers(currentParent)).to.eventually.equal('No campaigns for current period.');
});

我希望能够测试错误消息本身。

最佳答案

我通过另一个stackoverflow文章找到了一个解决方案,该文章带有指向github问题评论的链接。 https://github.com/chaijs/chai/issues/882#issuecomment-322131680
我还必须从异步getCampaignMembers方法中删除捕获。

cosnt campaignMember = {

getCampaignMembers: async () => {
await login();
return conn.sobject('CampaignMember')
.select('*')
.then((result) => {
if (!result[0]) {
throw Error('No campaigns for current period.');
}
return result;
})
.catch(err => throw Error(err));
},
}
module.exports = campaignMember

测试
it('should pass', async () => {
await otherAsyncMethod();

await campaignMember. getCampaignMembers(currentParent).catch((err) => {
expect(err).to.be.an('error').with.property('message', 'Error: No campaigns for current period.');
});

});

关于asynchronous - Chai测试.then内部是否抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56285055/

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