jest/no-duplicate-hooks 风格
它做了什么
禁止在 describe 块中出现重复的钩子。
为什么这是不好的?
在 describe 块中存在重复的钩子可能导致混淆和意外行为。当同一类型的多个钩子存在时,它们会按顺序全部执行,这会使测试设置流程难以理解,并可能导致冗余或冲突的操作。这使得测试更难维护和调试。
示例
此规则的错误代码示例:
javascript
describe("foo", () => {
beforeEach(() => {
// 一些初始化操作
});
beforeEach(() => {
// 一些初始化操作
});
test("foo_test", () => {
// 一些测试
});
});
// 嵌套 describe 场景
describe("foo", () => {
beforeEach(() => {
// 一些初始化操作
});
test("foo_test", () => {
// 一些测试
});
describe("bar", () => {
test("bar_test", () => {
afterAll(() => {
// 一些清理操作
});
afterAll(() => {
// 一些清理操作
});
});
});
});此规则的正确代码示例:
javascript
describe("foo", () => {
beforeEach(() => {
// 一些初始化操作
});
test("foo_test", () => {
// 一些测试
});
});
// 嵌套 describe 场景
describe("foo", () => {
beforeEach(() => {
// 一些初始化操作
});
test("foo_test", () => {
// 一些测试
});
describe("bar", () => {
test("bar_test", () => {
beforeEach(() => {
// 一些初始化操作
});
});
});
});该规则与 eslint-plugin-vitest 兼容,要使用它,请将以下配置添加到你的 .oxlintrc.json 文件中:
json
{
"rules": {
"vitest/no-duplicate-hooks": "error"
}
}如何使用
要通过配置文件或 CLI 启用此规则,可以使用:
json
{
"plugins": ["jest"],
"rules": {
"jest/no-duplicate-hooks": "error"
}
}bash
oxlint --deny jest/no-duplicate-hooks --jest-plugin