首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有异步函数的Node.js assert.throws (承诺)

带有异步函数的Node.js assert.throws (承诺)
EN

Stack Overflow用户
提问于 2016-03-03 20:32:53
回答 4查看 14.1K关注 0票数 37

我想检查异步函数是否使用本机assert.throws模块中的assert抛出。我试过

代码语言:javascript
复制
const test = async () => await aPromise();
assert.throws(test); // AssertionError: Missing expected exception..

(很明显?)无法工作,因为函数在承诺被解析之前就退出了。然而,我发现在这个问题中,使用回调实现了同样的目标。

有什么建议吗?

(我正在使用Babel转到Node.js本地生成器。)

EN

Stack Overflow用户

发布于 2018-02-01 22:11:45

答案给了我工作,但我今天遇到了这个问题,并想出了另一个解决方案,我认为这是比较简单的。

代码语言:javascript
复制
// Code being tested
async function thisFunctionThrows() {
    throw new Error('Bad response')
}


// In your test.
try {
    await thisFunctionThrows()
    assert.equal(1 == 0) // Never gets run. But if it does you know it didn't throw.
} catch (e) {
    assert(e.message.includes('Bad response'))
}
票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35782435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档