vitest/consistent-each-for 正确性
它的作用
此规则确保在创建参数化测试时使用的方法保持一致。
该配置会影响不同的测试函数类型(test、it、describe、suite)。
为什么这是不好的?
如果没有统一的方式来创建参数化测试,开发者必须记住:.for 会将值展开为多个独立参数,而 .each 则将数组作为一个单一参数传递。
示例
以下为 错误 的代码示例:
js
// { test: 'for' }
test.each([[1, 1, 2]])("test", (a, b, expected) => {
expect(a + b).toBe(expected);
});
// { describe: 'for' }
describe.each([[1], [2]])("suite %s", (n) => {
test("test", () => {});
});以下为 正确 的代码示例:
js
// { test: 'for' }
test.for([[1, 1, 2]])("test", ([a, b, expected]) => {
expect(a + b).toBe(expected);
});
// { describe: 'for' }
describe.for([[1], [2]])("suite %s", ([n]) => {
test("test", () => {});
});配置
此规则接受一个配置对象,包含以下属性:
describe
type: "for" | "each"
it
type: "for" | "each"
suite
type: "for" | "each"
test
type: "for" | "each"
如何使用
要通过配置文件或 CLI 启用 此规则,可以使用:
json
{
"plugins": ["vitest"],
"rules": {
"vitest/consistent-each-for": "error"
}
}bash
oxlint --deny vitest/consistent-each-for --vitest-plugin