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