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