Skip to content
← Back to rules

jest/max-nested-describe スタイル

何をするか

このルールは、ネストされた describe() 呼び出しの最大深度を強制します。

なぜ問題なのか

describe() ブロックをあまりに深くネストすると、テストスイートが読みにくくなり、理解しにくくなります。

以下のパターンは、デフォルト設定 { "max": 5 } での警告と見なされます:

誤りの例

javascript
describe("foo", () => {
  describe("bar", () => {
    describe("baz", () => {
      describe("qux", () => {
        describe("quxx", () => {
          describe("多すぎる", () => {
            it("何かを得るべき", () => {
              expect(getSomething()).toBe("Something");
            });
          });
        });
      });
    });
  });
});

describe("foo", function () {
  describe("bar", function () {
    describe("baz", function () {
      describe("qux", function () {
        describe("quxx", function () {
          describe("多すぎる", function () {
            it("何かを得るべき", () => {
              expect(getSomething()).toBe("Something");
            });
          });
        });
      });
    });
  });
});

正しい例

ts
describe("foo", () => {
  describe("bar", () => {
    it("何かを得るべき", () => {
      expect(getSomething()).toBe("Something");
    });
  });
  describe("qux", () => {
    it("何かを得るべき", () => {
      expect(getSomething()).toBe("Something");
    });
  });
});

describe("foo2", function () {
  it("何かを得るべき", () => {
    expect(getSomething()).toBe("Something");
  });
});

describe("foo", function () {
  describe("bar", function () {
    describe("baz", function () {
      describe("qux", function () {
        describe("これが限界です", function () {
          it("何かを得るべき", () => {
            expect(getSomething()).toBe("Something");
          });
        });
      });
    });
  });
});

このルールは eslint-plugin-vitest と互換性があります。
使用するには、.oxlintrc.json に以下の設定を追加してください:

json
{
  "rules": {
    "vitest/max-nested-describe": "error"
  }
}

設定

このルールは次のプロパティを持つ設定オブジェクトを受け付けます:

max

type: integer

default: 5

ネストされた describe 呼び出しの許容される最大深度。

使用方法

設定ファイルまたは CLI でこのルールを 有効化 するには、次のようにします:

json
{
  "plugins": ["jest"],
  "rules": {
    "jest/max-nested-describe": "error"
  }
}
bash
oxlint --deny jest/max-nested-describe --jest-plugin

参照