Skip to content
← Back to rules

jest/no-done-callback 스타일

An auto-fix is available for this rule.

작동 방식

이 규칙은 훅 및 테스트의 함수 매개변수에서 done 인자 사용 여부를 확인하여, 대신 프로미스를 반환하도록 권장합니다.

왜 문제가 될 수 있는가?

훅과 테스트에서 비동기 코드를 호출할 때, Jest는 현재 실행이 완료되었음을 알기 위해 비동기 작업이 끝났다는 신호가 필요합니다. 원래 이 목표를 달성하기 위해 가장 일반적인 방법은 콜백을 사용하는 것이었습니다:

javascript
test("데이터는 아몬드 버터입니다", (done) => {
  function callback(data) {
    try {
      expect(data).toBe("아몬드 버터");
      done();
    } catch (error) {
      done(error);
    }
  }

  fetchData(callback);
});

그러나 이 방식은 테스트 내에서 검증 문장이 어떻게 동작하는지 정확히 이해해야 하므로 실수가 많고, 그렇지 않으면 테스트가 예상한 대로 동작하지 않을 수 있습니다.

예시

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

javascript
beforeEach((done) => {
  // ...
});

test("myFunction()", (done) => {
  // ...
});

test("myFunction()", function (done) {
  // ...
});

사용 방법

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

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

참고 자료