Skip to content
← Back to rules

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"
  }
}

사용 방법

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

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

참고 자료