実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる』(GOOS本)に刺激を受けた。本書の手法をWebアプリ開発に活かしていきたい。

訳者の一人である和智さんの記事にあるとおり、「GOOS流TDDの核心は受け入れテストとユニットテストにより構成される二重のループ」である。二重のループ自体は2007年の記事「[動画で解説]和田卓人の“テスト駆動開発”講座:第8回 テスト駆動開発の「サイクル」――まず受け入れテストで土台を作る」でも紹介されており、目新しい手法ではない。本書の価値は、オークション入札アプリの開発を例に、二重のループを「実践」している点にある。どのように実践しているかは、本書を読んでのお楽しみ。

本書では、オークション入札アプリをSwingで構築しているが、Webアプリ開発にだって、二重のループを適用できるはずだ。原著者の一人であるSteve Freeman氏のGOOSメーリングリストへの投稿によると、少なくとも受け入れテストのレベルでは、GUIアプリでもWebアプリでもテストの書き方はさほど変わらないだろうとのことだ。実際、いわゆるPet Storeアプリを二重のループで書いたとの投稿もある。アプリのリポジトリをながめると、下記の受け入れテスト部分はたしかに、本書のオークション入札アプリのそれに似ている。

ちなみに僕は、Capybaraで受け入れテストを書くのが面白そうだと思っている。Webアプリのネタが浮かんだら、ぜひ書いてみたい。