@remix-run/testing
このパッケージには、Remix アプリケーションの一部をユニットテストする際に役立つユーティリティが含まれています。これは、コンパイラによって出力される Remix ルートモジュール/アセットマニフェストをモックし、createMemoryRouter を使用してメモリ内の React Router アプリを生成することで実現されます。
一般的に、これは、Remix のフック/コンポーネントに依存するコンポーネント/フックをテストするために使用されます。これらのフック/コンポーネントは、クリーンにモックすることができません(useLoaderData
、useFetcher
など)。より高度なテスト(リンクをクリックしてページに移動するなど)にも使用できますが、それらは Cypress や Playwright などのエンドツーエンドテストの方が適しています。
使用方法
createRemixStub
を使用するには、React Router のようなルートオブジェクトを使用してルートを定義します。ここで、path
、Component
、loader
などを指定します。これらは、基本的に Remix アプリのルートファイルのネストとエクスポートをモックしています。
次に、<RemixStub />
コンポーネントをレンダリングし、それをアサートできます。
例
以下は、jest
と React Testing Library を使用したテストの完全な動作例です。