Skip to content
← Back to rules

jest/no-hooks 스타일

An auto-fix is available for this rule.

작동 방식

Jest의 설정 및 정리 훅(beforeAll 등) 사용을 금지합니다.

왜 좋지 않은가?

Jest는 각 테스트 케이스와 테스트 세트 전후에 호출되는 전역 함수를 제공하여 설정 및 정리 작업을 수행합니다. 이러한 훅의 사용은 테스트 간 공유 상태를 유도합니다.

이 규칙은 다음 함수 호출에 대해 보고합니다:

  • beforeAll
  • beforeEach
  • afterAll
  • afterEach

예시

이 규칙에 부적절한 코드 예시:

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[]

기본값: []

사용이 허용된 훅 함수 이름의 배열입니다.

사용 방법

구성 파일 또는 명령줄에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "plugins": ["jest"],
  "rules": {
    "jest/no-hooks": "error"
  }
}
bash
oxlint --deny jest/no-hooks --jest-plugin

참고 자료