きままに記録箱

フロントエンドたまに他のはなし

「Jestではじめるテスト入門」ゆるく感想

約1年前に予約してた「Jestではじめるテスト入門」の電子版の配信が始まっていたので早速読んでみました。

peaks.cc

TLDR

  • Jestの導入と入門からやりたい人はマストバイ
  • TypeScriptわからない人は結構厳しいかも
  • ビジュアルリグレッションテストに関する記載は少ないので、UIテスト関係に期待しない方がいい

読もうと思ったきっかけ

当時前職にいたときに、フロントエンド関連のバグが多発していたこともありテストコードを入れていこうと流れになって、ちょうどJestに慣れていく途中の段階でした。そんなとき丁度プロジェクトを偶々知って即予約してたって感じだった気がする。 関数のテストの書き方はわかったけど、コンポーネント系は本当に模索段階だったので本書の触れ込みは本当にぴったしでした。

良かった点

Testing Trophyの概要が日本語で紹介されている

Reactとかで使うTesting Libraryのことを調べていると、Testing Trophyの文字を見たことがあるかもしれません。図は見たことあるだけな人が大多数だと思います。自分もそうでした。日本語で詳細を読めたのは本当に有り難い。。。

kentcdodds.com

Jestの開発者のインタビューが読める

本の序盤にも書いていますが、 以前Jestの開発に携わっていたChristoph Nakazawa氏の貴重なインタビューが記載されています。ちなみに氏は現在東京在住らしい。

Jestという名称の由来と、テストを作成するときのバランスに関する回答は必見。

www.youtube.com

テストのアプローチにページが割かれている

第3章は丸々テストに対するアプローチの話が書かれています。筆者もなるべくtoBeメソッドを用いてプレーンな文字列などの値で比較するようにしたり意識しているが、そういった良いアプローチと駄目なアプローチが明文化されています。 Jestに慣れている人はここだけ読無形でもいいと思います。

気になった点

Jestのmockに対する記載が少ない

これは入門とタイトル付けされている以上仕方ないかなぁ。。。 ただし業務で使うコード細かくディレクトリ・ファイル分けされているケースが殆どで非同期のテストだと当たり前のように使うので少し記載を足してほしかったかな。

第5~6章が駆け足気味

4章までは読みやすくかったのですが、筆者が変わる5~6章が読みにくかったです。。。文中に「今回zodを初めて使った見た」とか書かれていることから、多分大分模索しながら書いたんだろうなーって印象でした。

お題として退職金控除のアプリが出てくるのですが、筆者も含め人によっては馴染みが薄いお題に対して、コードが一気にドカンと出てくるのでテストケースを読み解くのに苦労しました。これは1周しただけでは理解が追いつかないです。

特に5章でAPIの作成を行うのですが、1つのメソッドを実装した後、残りのメソッドの中身は仕様だけ残しておくから、コードはGitHubのサンプル見てねーはちょっと。。。って思いました。もし改訂する際はコードの記載を追記してほしいなぁというのが個人的な要望です。

UIテスト関係が個人的に期待ハズレ

コンポーネントテスト目当てで買った身としてはStorybookのplay機能やChromaticのUIテストを期待していたのですが、少し触れられている程度で残念でした。実際のケースでどのように活用するのか見たい身なので付録でいいから見てみたかったです。

storybook.js.org

www.chromatic.com

終わりに

色々気になる点もありましたが、Jestの全体像を日本語で読めるだけでもマストバイだと思います(Jestのドキュメントは減りつつあるCommon.jsベースだし、英語と日本語が混じっているページもあって読みにくい。。。)。またAPIの互換性を持つVitestの台頭もあるので、振り返りとしても読んで損はないはずです。

ちなみに4月下旬には今回不満点にあげたUIテストも含めたフロントエンドテスト本が出るようです。サンプルがNext.jsとのことで非常に楽しみです。 また来月号のWeb-DB pressでもその辺りの特集が掲載されるみたい。

www.shoeisha.co.jp

今年中に、テスト駆動開発読もうかなー。

www.amazon.co.jp