2025-10-20 React Nativeのテスト環境を揃えてみる
月曜日。8:30起床。なんやかんや寒くなってきて、いい加減に「長袖をください」とチェストが嘆いている。
昨日は一日休んだせいか、なかなか仕事はやる気になっていた。天気は悪いが。
長い事放ったらかしていた、フロントエンド周りのテスト環境に関する知識を一気にアップデートした一日。
午前中からReact Native(Expo)開発時の静的解析ツール(ESLintとBiome)の併用とユニットテストの手法をChatGPTにあれこれ質問しながら調査する。なんやかんやで時間がかかる仕事だ。
特にESLintのルールセットを取り入れるか取り入れないかで悩む事が多い。Expoでの開発では、初めから推奨されるルールがConfigされている状態なので、これ以上の厳密さがいるのか?とも思うが、案件チームに入るとやれAirbnbだのUnicornだのと入っている事が多いのでなかなか悩む。
ここだけで3時間を費やした。
その後、ユニットテストは既にJestとRN用のTesting Libraryが用意されているようなので、UIのユニットテスト環境をインストール。「react-test-renderer」がReactのバージョンと揃わない問題があって、こっちもなかなか苦戦した。最終的にpackage.jsonを編集してreact-test-rendererを完全に固定のバージョンに指定すればインストールできると分かった。こちらも導入だけで1時間。
結合テストにはStorybookを入れたが、こちらはどうやらRNでもいつもと変わらなかった。Storyを入れるフォルダは「.rnstorybook」の名称になっている。違いはこれぐらいだと思われる。
まだ実際にStoryを書いてるわけではないので、どうやって動かすかはよく分からない。
E2Eテストにはいろいろ探ったが、結局どのツールが適しているのか分からなかったので、日本語のドキュメントが揃っていた「Maestro」というE2Eツールをインストールして使ってみた。グローバルにインストールして実行コマンドでテストを実行すると、既に起動しているシミュレーター上でテストが動くという形のようだ。少し使い方を覚えてみることに。
これで開発する環境を構築出来た事になるので、明日からは実際にExpoのチュートリアルをテストを通しながら進めていこう。
なんだかんだであと10日で実際のアプリを作っていく予定なので、もうかなり時間がない。