Skip to content
← Back to rules

jest/prefer-lowercase-title 风格

An auto-fix is available for this rule.

它的作用

强制要求 ittestdescribebench 的描述以小写字母开头。这可以提高测试失败信息的可读性。

为什么这是不好的?

当测试失败时,使用小写消息通常会产生更符合语法规则的失败提示信息。

示例

此规则的 错误 代码示例:

javascript
it("Adds 1 + 2 to equal 3", () => {
  expect(sum(1, 2)).toBe(3);
});

此规则的 正确 代码示例:

javascript
it("adds 1 + 2 to equal 3", () => {
  expect(sum(1, 2)).toBe(3);
});

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

json
{
  "rules": {
    "vitest/prefer-lowercase-title": "error"
  }
}

配置

此规则接受一个配置对象,包含以下属性:

allowedPrefixes

type: string[]

default: []

此数组选项允许指定前缀,这些前缀允许在标题开头包含大写字母。当编写针对 API 端点的测试时,这非常有用,因为你可以用 HTTP 方法作为前缀。 默认情况下,不允许任何前缀(等同于 { "allowedPrefixes": [] })。

使用 { "allowedPrefixes": ["GET"] } 选项的 正确 代码示例:

js
/* jest/prefer-lowercase-title: ["error", { "allowedPrefixes": ["GET"] }] */
describe("GET /live");

ignore

type: string[]

default: []

此数组选项控制哪些 Jest 或 Vitest 函数受此规则检查。共有四个可能的值:

  • "describe"
  • "test"
  • "it"
  • "bench"

默认情况下,这些选项均未启用(等同于 { "ignore": [] })。

使用 { "ignore": ["describe"] } 选项的 正确 代码示例:

js
/* jest/prefer-lowercase-title: ["error", { "ignore": ["describe"] }] */
describe("Uppercase description");

使用 { "ignore": ["test"] } 选项的 正确 代码示例:

js
/* jest/prefer-lowercase-title: ["error", { "ignore": ["test"] }] */
test("Uppercase description");

使用 { "ignore": ["it"] } 选项的 正确 代码示例:

js
/* jest/prefer-lowercase-title: ["error", { "ignore": ["it"] }] */
it("Uppercase description");

ignoreTopLevelDescribe

type: boolean

default: false

此选项可设置为仅允许顶层 describe 块的标题以大写字母开头。

使用 { "ignoreTopLevelDescribe": true } 选项的 正确 代码示例:

js
/* jest/prefer-lowercase-title: ["error", { "ignoreTopLevelDescribe": true }] */
describe("MyClass", () => {
  describe("#myMethod", () => {
    it("does things", () => {
      //
    });
  });
});

lowercaseFirstCharacterOnly

type: boolean

default: true

此选项可设置为仅验证测试名称的第一个字符是否为小写。

使用 { "lowercaseFirstCharacterOnly": true } 选项的 正确 代码示例:

js
/* vitest/prefer-lowercase-title: ["error", { "lowercaseFirstCharacterOnly": true }] */
describe("myClass", () => {
  describe("myMethod", () => {
    it("does things", () => {
      //
    });
  });
});

使用 { "lowercaseFirstCharacterOnly": true } 选项的 错误 代码示例:

js
/* vitest/prefer-lowercase-title: ["error", { "lowercaseFirstCharacterOnly": true }] */
describe("MyClass", () => {
  describe("MyMethod", () => {
    it("does things", () => {
      //
    });
  });
});

如何使用

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

json
{
  "plugins": ["jest"],
  "rules": {
    "jest/prefer-lowercase-title": "error"
  }
}
bash
oxlint --deny jest/prefer-lowercase-title --jest-plugin

参考资料