Skip to content
← Back to rules

jest/prefer-jest-mocked スタイル

🛠️ An auto-fix is available for this rule for some violations.

何をするのか

Jest を使用して関数のモックを扱う場合、モックされた関数の型を適切に設定するために jest.mocked() ヘルパー関数を使用することが推奨されます。このルールは、より良い型安全性と可読性のために jest.mocked() の使用を強制します。

制限される型:

  • jest.Mock
  • jest.MockedFunction
  • jest.MockedClass
  • jest.MockedObject

なぜ悪いのか

fn as jest.Mock のような型アサーションを使用することは、jest.mocked() を使うよりも安全性が低いです。jest.mocked() ヘルパーは、元の関数シグネチャを保持しつつモック機能を追加することで、より良い型安全性を提供します。また、コードの可読性も向上し、モックの意図が明確になります。

このルールに対して誤りなコードの例:

typescript
(foo as jest.Mock).mockReturnValue(1);
const mock = (foo as jest.Mock).mockReturnValue(1);
(foo as unknown as jest.Mock).mockReturnValue(1);
(Obj.foo as jest.Mock).mockReturnValue(1);
([].foo as jest.Mock).mockReturnValue(1);

このルールに対して正しいコードの例:

typescript
jest.mocked(foo).mockReturnValue(1);
const mock = jest.mocked(foo).mockReturnValue(1);
jest.mocked(Obj.foo).mockReturnValue(1);
jest.mocked([].foo).mockReturnValue(1);

使い方

このルールを有効にするには、設定ファイルまたは CLI で次のように使用できます:

json
{
  "plugins": ["jest"],
  "rules": {
    "jest/prefer-jest-mocked": "error"
  }
}
bash
oxlint --deny jest/prefer-jest-mocked --jest-plugin

参照