You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vitest中让Promise断言失败时显示自定义错误信息

在Vitest中让Promise解析断言失败时显示自定义错误消息

当你使用await expect(expected, "custom message").resolves.toBeUndefined()断言Promise解析时,若Promise被拒绝,传入的自定义消息不会显示,只会返回默认提示。要解决这个问题,你可以用以下几种方式:

方法1:使用withContext()附加自定义消息

Vitest提供了.withContext()方法,能将自定义上下文信息添加到断言失败的输出中,这是最简洁的方案:

await expect(expected)
  .withContext('自定义错误消息:Promise未正常解析')
  .resolves.toBeUndefined();

当Promise被拒绝时,错误信息会包含你设置的自定义内容。

方法2:手动捕获异常并抛出带自定义消息的错误

通过try/catch包裹断言逻辑,捕获失败后重新抛出包含自定义消息的错误,还可以保留原错误信息:

try {
  await expect(expected).resolves.toBeUndefined();
} catch (error) {
  throw new Error(`自定义错误消息:${error.message}`);
}

方法3:直接处理Promise并断言

绕开resolves语法,手动等待Promise完成后判断状态,再抛出自定义错误:

try {
  await expected;
  // 若Promise成功解析,可添加额外断言逻辑
  expect(undefined).toBeUndefined();
} catch (err) {
  throw new Error('自定义错误消息:Promise被拒绝,未按预期解析');
}

内容的提问来源于stack exchange,提问作者Blee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:54:57