Skip to content
← Back to rules

jest/prefer-jest-mocked 스타일

🛠️ An auto-fix is available for this rule for some violations.

작동 방식

Jest를 사용하여 함수를 모킹할 때, 모킹된 함수의 타입을 올바르게 지정하기 위해 jest.mocked() 보조 함수를 사용하는 것이 권장됩니다. 이 규칙은 더 나은 타입 안전성과 가독성을 위해 jest.mocked()의 사용을 강제합니다.

제한된 타입:

  • jest.Mock
  • jest.MockedFunction
  • jest.MockedClass
  • jest.MockedObject

왜 좋지 않은가?

fn as jest.Mock와 같은 타입 주장 사용은 jest.mocked()보다 덜 안전한 접근 방식입니다. jest.mocked() 보조 함수는 원래 함수 시그니처를 유지하면서도 모킹 기능을 추가함으로써 더 뛰어난 타입 안정성을 제공합니다. 또한 코드의 가독성을 높이고, 모킹 의도를 명확하게 표현해줍니다.

예시

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

typescript
(foo as jest.Mock).mockReturnValue(1);
const mock = (foo as jest.Mock).mockReturnValue(1);
(foo as unknown as jest.Mock).mockReturnValue(1);
(Obj.foo as jest.Mock).mockReturnValue(1);
([].foo as jest.Mock).mockReturnValue(1);

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

typescript
jest.mocked(foo).mockReturnValue(1);
const mock = jest.mocked(foo).mockReturnValue(1);
jest.mocked(Obj.foo).mockReturnValue(1);
jest.mocked([].foo).mockReturnValue(1);

사용 방법

이 규칙을 설정 파일 또는 CLI에서 활성화하려면 다음을 사용할 수 있습니다:

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

참고자료