1

我有这个功能

export async function trivialAsyncFail() {
    return new Promise((resolve,reject) => {
        reject("This is supposed to happen");
    });
}

我有以下测试来测试它:

test("Async fail", async (t) => {
    const failedPromise = trivialAsyncFail();
    t.throws(failedPromise);
    await failedPromise;
});

但是我的测试失败并显示消息:

异步失败

测试返回的被拒绝的承诺

拒绝原因:

"This is supposed to happen"

我不确定我是否误解了t.throws应该如何工作。我假设如果您希望承诺被拒绝并且它被拒绝,那么测试应该会成功。

使用 ava 0.19

4

1 回答 1

6

根据文档

测试 Promise 时,您必须等待断言完成:

test('rejects', async t => {
  await t.throws(promise);
});

所以这样做await t.throws(failedPromise)而不是await failedPromise

于 2017-10-31T14:21:14.503 回答