jest/no-hooks スタイル
何をするか
Jest のセットアップおよび終了フック(例:beforeAll)の使用を禁止します。
なぜ問題なのか
Jest はテストケースやテストスイートの前後で実行される、初期化および後処理用のグローバル関数を提供しています。これらのフックを使用すると、テスト間で共有状態が生まれやすくなります。
このルールは以下の関数呼び出しに対して報告します:
beforeAllbeforeEachafterAllafterEach
例
このルールに違反する不適切なコードの例:
javascript
function setupFoo(options) {
/* ... */
}
function setupBar(options) {
/* ... */
}
describe("foo", () => {
let foo;
beforeEach(() => {
foo = setupFoo();
});
afterEach(() => {
foo = null;
});
it("何かを実行する", () => {
expect(foo.doesSomething()).toBe(true);
});
describe("bar を使って", () => {
let bar;
beforeEach(() => {
bar = setupBar();
});
afterEach(() => {
bar = null;
});
it("bar と何かを実行する", () => {
expect(foo.doesSomething(bar)).toBe(true);
});
});
});このルールは eslint-plugin-vitest と互換性があります。これを有効にするには、.oxlintrc.json に以下の設定を追加してください:
json
{
"rules": {
"vitest/no-hooks": "error"
}
}設定
このルールは以下のプロパティを持つ設定オブジェクトを受け入れます:
allow
type: string[]
default: []
許可されるフック関数名の配列です。
使用方法
このルールを有効にするには、設定ファイルまたは CLI 経由で以下のように使用できます:
json
{
"plugins": ["jest"],
"rules": {
"jest/no-hooks": "error"
}
}bash
oxlint --deny jest/no-hooks --jest-plugin