jest/no-standalone-expect 正しさ
何をするのか
test または it ブロックの外にある expect 状態文を防止します。ヘルパー関数内に expect がある場合(ただし、test や it ブロックの外にある場合)は、このルールは発火しません。
expect.hasAssertions() のような文は、このルールの対象になりません。なぜなら、これらはテストブロック外でも実行されるからです。
なぜ悪いのか
テストブロックの外にある expect 状態文は、Jest のテストランナーによって実行されないため、実際に何の検証も行われません。これにより、テストカバレッジに対する誤った安心感が生じ、本来であれば適切なテストによって発見されていたバグが隠れてしまう可能性があります。
例
このルールに対して不正なコードの例:
javascript
describe("a test", () => {
expect(1).toBe(1);
});このルールは eslint-plugin-vitest と互換性があります。使用するには、.oxlintrc.json に以下の設定を追加してください:
json
{
"rules": {
"vitest/no-standalone-expect": "error"
}
}設定
このルールは次のプロパティを持つ設定オブジェクトを受け入れます:
additionalTestBlockFunctions
type: string[]
default: []
テストブロックとして扱われるべき関数名の配列です。
使用方法
このルールを有効にするには、設定ファイルまたは CLI で次のように使用できます:
json
{
"plugins": ["jest"],
"rules": {
"jest/no-standalone-expect": "error"
}
}bash
oxlint --deny jest/no-standalone-expect --jest-plugin