React

create-react-appで標準搭載のテストライブラリは?

React

こんにちは。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ですぐにテスト実行ができます。

では、また〜。

コメント