jest/no-conditional-in-test 細心な
何をするか
テスト内での条件付き文の使用を禁止します。
なぜ悪いのか
テスト内の条件付き文は、テストの読みやすさと理解のしやすさを低下させます。各テスト関数には1つのテストケースを設けるのが望ましいです。
例
このルールに違反する不適切なコードの例:
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