Skip to content
← Back to rules

jest/prefer-mock-return-shorthand 스타일

An auto-fix is available for this rule.

작동 방식

간단한 값을 반환하는 함수의 모크를 사용할 때, Jest는 작성해야 하는 반복 코드 양을 줄이기 위해 몇 가지 API 편의 함수를 제공합니다.

왜 문제가 될까요?

Jest의 API 편의 함수를 사용하지 않으면 불필요한 반복 코드가 추가되어 테스트가 더 복잡하고 이해하기 어려워집니다. 이러한 도구들은 의도를 명확히 표현하며, 오류를 줄이고 테스트를 간단하고 유지보수가 쉬운 상태로 유지해 줍니다.

예시

이 규칙에 대해 잘못된 코드 예시:

js
jest.fn().mockImplementation(() => "안녕하세요 세상");

jest
  .spyOn(fs.promises, "readFile")
  .mockImplementationOnce(() => Promise.reject(new Error("아이고!")));

myFunction
  .mockImplementationOnce(() => 42)
  .mockImplementationOnce(() => Promise.resolve(42))
  .mockReturnValue(0);

이 규칙에 대해 올바른 코드 예시:

js
jest.fn().mockResolvedValue(123);

jest.spyOn(fs.promises, "readFile").mockReturnValue(Promise.reject(new Error("아이고!")));
jest.spyOn(fs.promises, "readFile").mockRejectedValue(new Error("아이고!"));

jest.spyOn(fs, "readFileSync").mockImplementationOnce(() => {
  throw new Error("아이고!");
});

myFunction.mockResolvedValueOnce(42).mockResolvedValueOnce(42).mockReturnValue(0);

이 규칙은 eslint-plugin-vitest와 호환되며, 이를 사용하려면 .oxlintrc.json에 다음 구성 항목을 추가하면 됩니다:

json
{
  "rules": {
    "vitest/prefer-mock-return-shorthand": "error"
  }
}

사용 방법

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

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

참고 자료