2025-10-31 テストのテスト

金曜日。12:30起床。なんかすごく気が急いているのだが、おかしいな。
実際のところ、今日まで少しお休み気分で過ごそうと10月いっぱいはインプットに集中する勉強月間としたのだが、やってみるとこれが思いの外忙しい。特に15日過ぎてからは、1日1日が秒で過ぎていった。おかしいぞ、ももいろインフラーZの公開収録は2、3日前だったはずなのに。
たぶん「学ぶ」という行為に時間がかかっている、つまり頭が悪くなっている証拠なんだろうなあ。

今日は起きてから夜までずっとフロントエンドのコンポーネントテストの学習をやっていた。いい加減には出来ない内容だし次の案件の役にも立つだろうと、まずはJestからVitestに切り替えるという事からスタート。
動かしてみると、たしかに格段に速くテストが終わる。2msとか出るテストケースまである。同じ事をしているし同じ仮想DOMライブラリを使用しているはずなのに、一体どういう仕組みなんだ。
その代わりなのか、そうじゃないのか分からないが、動作させるまでに設定する内容が多い。本当にびっくりするぐらい面倒くさい。しかもWebStormのエディタ上でテストが実行されない。少し調べてみたら、Vitest対応!と謳ってアップデートを出したものの、Vitest4では実行されない事に気が付かないままリリースしてしまったらしい。そんなドジがあるかよと笑ってしまった。

Vitestが構築出来たらひたすらにコンポーネント向けのクエリとマッチャーを書く。ここは特にJestとは変わらない。ただ1点、APIの通信を割り込むモックの仕組みと作り方をしっかり学んだ。これまでは見様見真似でなんとなく実装していた箇所だが、自分的にここ(WebAPIとの接続テストをモックする)は面倒だなあといつも思っていて、それがウィークポイントだなとも感じていたのでちょっと気持ちがスッキリした。(4時間もかかったが)

ユニットテストの勉強はこれで気が済んだので、明日からはリグレッションとE2Eに入る。ずっと読めてなかった参考書があるので、こっちは少し楽しみだったりする。11月に入る前に準備出来て良かったな。明日からはアプリの開発も本格スタートするので。