Skip to content
← Back to rules

jest/require-to-throw-message 正确性

它的作用

如果在使用 toThrow()toThrowError() 时未指定错误消息,此规则会触发警告。

为什么这是不好的?

在未指定预期错误消息的情况下使用 toThrow()toThrowError() 会使测试不够具体,更难以调试。当测试仅检查是否抛出了错误,但未说明是何种类型的错误时,即使抛出了错误类型错误,测试仍可能通过,从而可能掩盖潜在的缺陷。提供预期的错误消息或错误类型可以使测试更加精确,并更有效地捕捉回归问题。

示例

以下为该规则的 错误 代码示例:

javascript
test("所有事情", async () => {
  expect(() => a()).toThrow();
  expect(() => a()).toThrowError();
  await expect(a()).rejects.toThrow();
  await expect(a()).rejects.toThrowError();
});

以下为该规则的 正确 代码示例:

javascript
test("所有事情", async () => {
  expect(() => a()).toThrow("a");
  expect(() => a()).toThrowError("a");
  await expect(a()).rejects.toThrow("a");
  await expect(a()).rejects.toThrowError("a");
});

此规则与 eslint-plugin-vitest 兼容。要使用它,请将以下配置添加到您的 .oxlintrc.json 文件中:

json
{
  "rules": {
    "vitest/require-to-throw-message": "error"
  }
}

如何使用

要通过配置文件或 CLI 启用 此规则,可以使用:

json
{
  "plugins": ["jest"],
  "rules": {
    "jest/require-to-throw-message": "error"
  }
}
bash
oxlint --deny jest/require-to-throw-message --jest-plugin

参考资料