jest/no-conditional-in-test 严谨
它的作用
禁止在测试中使用条件语句。
为什么这是不好的?
测试中的条件语句会使测试更难阅读和理解。最好每个测试函数只包含一个测试用例。
示例
此规则的错误代码示例:
js
it("foo", () => {
if (true) {
doTheThing();
}
});
it("bar", () => {
switch (mode) {
case "none":
generateNone();
case "single":
generateOne();
case "multiple":
generateMany();
}
expect(fixtures.length).toBeGreaterThan(-1);
});
it("baz", async () => {
const promiseValue = () => {
return something instanceof Promise ? something : Promise.resolve(something);
};
await expect(promiseValue()).resolves.toBe(1);
});此规则的正确代码示例:
js
describe("my tests", () => {
if (true) {
it("foo", () => {
doTheThing();
});
}
});
beforeEach(() => {
switch (mode) {
case "none":
generateNone();
case "single":
generateOne();
case "multiple":
generateMany();
}
});
it("bar", () => {
expect(fixtures.length).toBeGreaterThan(-1);
});
const promiseValue = (something) => {
return something instanceof Promise ? something : Promise.resolve(something);
};
it("baz", async () => {
await expect(promiseValue()).resolves.toBe(1);
});此规则与 eslint-plugin-vitest 兼容,要使用它,请将以下配置添加到你的 .oxlintrc.json 中:
json
{
"rules": {
"vitest/no-conditional-in-test": "error"
}
}如何使用
要通过配置文件或 CLI 启用此规则,可以使用:
json
{
"plugins": ["jest"],
"rules": {
"jest/no-conditional-in-test": "error"
}
}bash
oxlint --deny jest/no-conditional-in-test --jest-plugin