はじめに
学習記録アプリのテストを書こうとしたら、Supabase(DB)と通信する部分が邪魔でテストがうまく動かなかった。
調べたら「モック」という仕組みで解決できたので整理する。
問題
自分のアプリでは supabaseFunction.js がSupabaseと通信してデータを取得・追加・削除している。
テストでこのコードをそのまま使うと:
- ネット環境がないと動かない
- テストのたびにDBのデータが変わる
- 通信する分、遅い
テストしたいのはアプリの画面やロジックなのに、DB通信のせいで安定しない。
解決方法
モック(mock)を使う。モックとは、本物の代わりに使う偽物のこと。
本物と同じインターフェースを持つ偽物に差し替えることで、通信せずに固定のデータを返せるようになる。
結果がいつも同じになるので、テストが安定する。
終わりに
今回の経験から、テストは「正しく動くか」だけでなく「安定して再現できるか」が大切だと学んだ。
モックはそのための強力な手段なので、今後の開発でも活用していきたい。