当承诺被拒绝时,测试失败

时间:2017-10-31 14:06:53

标签: javascript ava

我有这个功能

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

1 个答案:

答案 0 :(得分:5)

According to the documentation

  

在测试承诺时,您必须等待断言完成:

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

await t.throws(failedPromise)代替await failedPromise