こんにちは。kaoruです。
create-react-appが便利そうなので使い始めています。
便利なことにテストフレームワークも最初から入っているのです。
けれど「Jest と React Testing Libraryが入っているよ」といわれてもよく分からなかったので概要を調べてみました。
何が最初から入っていて、何を調べていけばテストコードが書けそうかが分かりました。
create-react-appとは
React公式が推奨のツールチェインです。
Reactの学習やSPAに適しているみたいです。
ツールチェインとして以下が含まれています。
- ミニマムのReactコンポーネントが最初から実装されている(yarn start)
- ミニマムのテスト実装が最初から実装されている(yarn test)
- Webpackでのビルド設定が不要(yarn build)
全部()内のnpm scriptでいきなり実行できるのです。
今回はテスト部分を少し調べていきました。
Jestって?
Jestとは
Node上で動くJavaScriptのテストフレームワーク
今は単体テスト(Unit Test)といえばJestといわれる、実質のデファクトスタンダード
以前、Jasmineというテストフレームワークを使ってみましたが、Mockを実装する時に苦労した覚えがあります。
Jestはテストに必要な昨日をAll in Oneで全て搭載しています。
create-react-appには最初から同梱されている
最初から同梱されている、のですがpackage.jsonを見てもjestがありません。
何故でしょう?
実はreact-scriptsの中に入っているのです。
yarn.lockで確認ができますね。
”jest”でファイル内検索するとあれこれ検索されてしまうので、” jest “のように前後に半角スペースを入れるとうまく拾えます。
React Testing Libraryって?
React Testing Libraryとは
コンポーネントをテストするためのテストライブラリです。
実際にはTesting Libraryファミリーの一つです。
create-react-appには最初から同梱されている
package.jsonを見ると以下のモジュールが入っています。
- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
@testing-library/react
基本的にはテストコード書くにはこれだけで十分です。
ちょっと前だとreact-testing-libraryモジュールを使っていたみたいですね。
@testing-library/jest-dom
React Testing Libraryにも当然マッチャーがあるのですが、上記をインスールすることでJestのマッチャーが使えるようになります。
create-react-app初期ではsetupTest.tsファイルが用意されています。
デフォルト設定で読み込むようにされていて、create-react-appを使わずに自分で実装していく場合はpackage.jsonの”jest”:{ “setupFilesAfterEnv”: に設定ファイルを指定するみたいです。
@testing-library/user-event
名前のとおりですが、ユーザイベントのテスト実装ができます。
上記3つが最初からcreate-react-appには入っているんですね。
まとめ
create-react-appには以下のテストライブラリが入っています。
- Jest (単体テスト)
- React Testing Library (コンポーネントテスト)
プロジェクト作成時に初期テストが作成されていて、yarn testですぐにテスト実行ができます。
では、また〜。
コメント