jest/no-done-callback 스타일
작동 방식
이 규칙은 훅 및 테스트의 함수 매개변수에서 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