jest/no-done-callback 风格
它的作用
此规则检查钩子和测试函数参数中对 done 参数的使用,建议改用返回一个承诺(promise)的方式。
为什么这是个问题?
在钩子和测试中调用异步代码时,Jest 需要知道异步操作何时完成,才能继续当前的执行流程。
最初实现这一目标最常见的方式是使用回调:
javascript
test("数据是花生酱", (done) => {
function callback(data) {
try {
expect(data).toBe("peanut butter");
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