以下で書いた通り、プロダクトコードを写経したテストコードを削除しました。
"こぶりー" ( https://kobliy.vercel.app/ ) という個人ブログを読むアプリのコードです。
その代わり、以下の構成のテストコードを用意しました。
Testcontainers については、以下で書いた記事が参考になります。
"こぶりー" では現在日付に関係するロジックがあります。
こういう時に Playwrightでのブラウザ日付を固定(2026年6月1日)にしたり、
TestcontainersのDockerコンテナのシステム日付を固定(2026年6月1日)にすることで、
日付に左右されないテストが実現できます。
"こぶりー" では、いくつかの環境を組み合わせています。
これらを Testcontainers の中にそのまま格納して環境変数だけ切り替えるだけで、
ローカルのテスト環境だけで全ての機能をチェックすることができます。
ローカル完結するので、テスト速度も早く安定したテストになります。
プロダクションコードを仕様とした写経テストコードは捨てて、
Gherkinのテストシナリオを仕様とさせます。
その代わり、テストシナリオにはこれまで実装してきた機能で守りたい機能のシナリオを記述する必要があります。
「何を守りたいか」を考える必要があり、今のところ思いつくままに列挙しています。
何度書いても冪等なテスト環境なので、何度も実行して検証して形にしました。
ここに書く粒度などは、まだ手探りな状態です。
守りたい仕様は定義できたので、
codemod によるファイル内の記述をチェック・強制(fix)するのを追加しました。
AIへのプロンプトやコンテキスト、AGENTS.md などによるガードレールよりも、
npm script のfixで直させた方が AI もそちらに沿うように倣ってくれるため、やっておきたいのです。
で、ほぼ大半のts,tsxファイルを変更しましたが、Testcontainersのテストのおかげで安心してマージできました。
-
※ ログイン不要で投稿できます。
※ 同じブラウザから投稿を削除できます。
0
読み込み中...
タグ「AI」の記事
最近のお悩みは、Webのソフトウェア開発におけるテストコードが爆増したことにより、 テスト成功による過度な安心感 によって手動確認するのが減っているのかもと思ったりしています。 例えば、Webのフォーム画面に小さな改修があったとして、その修
個人開発のバイブコーディングでテストコードを書かせているが意味がなかった。 期待する機能をプロンプトで指示しプロダクションコードが出来上がるが、同時にテストコードも書かせていた。 そのテストコードは、プロダクションコードをそのままテストコー
今朝、長らくお世話になった GitHub Copilot を解約し、 OpenAI Codex を Plus から Pro にアップグレードしました。 経緯 今月、5月4日あたりから OpenAI Codex で何度か上限制限(5時間以内)
2026年05月09日
タグ「フロントエンド」の記事
最近のお悩みは、Webのソフトウェア開発におけるテストコードが爆増したことにより、 テスト成功による過度な安心感 によって手動確認するのが減っているのかもと思ったりしています。 例えば、Webのフォーム画面に小さな改修があったとして、その修
以下で書いた個人ブログを読むアプリ(個人ブログライブラリ、略して "こぶりー" )をモバイルアプリで開発していました。 https://silverbirder.github.io/blog/contents/20260419/ 審査関連で
2026年05月11日
過去にモバイルアプリを作ろうとして断念したことがありました。 https://silverbirder.github.io/blog/contents/first-mobile-app-failure/ 最近、作りたいモバイルアプリのネタが
2026年04月14日
タグ「テスト」の記事
業務でWebフロントエンドのテストコードを書く際に、どこに何を書くかというのをざっくりと考えをまとめてみます。 前提 Webアプリケーションのプログラムファイルがツリー構造である前提とします。 tree よくあるフィーチャー単位のフォルダ構
2026年06月05日
個人開発のバイブコーディングでテストコードを書かせているが意味がなかった。 期待する機能をプロンプトで指示しプロダクションコードが出来上がるが、同時にテストコードも書かせていた。 そのテストコードは、プロダクションコードをそのままテストコー
最近、Testcontainers を使う機会があり、苦労したことについて備忘録として残しておきます。 前提 以下の記事で書いてある構成に近いものです。 https://zenn.dev/silverbirder/articles/0a54
2026年05月14日