代码之家  ›  专栏  ›  技术社区  ›  apokryfos

承诺被拒绝时抛出测试失败

  •  1
  • apokryfos  · 技术社区  · 8 年前

    我有这个功能

    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 回复  |  直到 6 年前
        1
  •  6
  •   Patrick Evans    8 年前

    According to the documentation :

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

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

    我也是 await t.throws(failedPromise) 而不是 await failedPromise