テスト駆動開発(Test-Driven development = TDD)については、以前からTest Firstという名で知っていましたし、実践しようともしていたはずなのですが、Kent Beckの"Test-Driven Development by Example"を読むまでは、やっぱりわかっていなかったような気がします。
それでは今ならわかっているのかというとそれも心もとないので、自分の理解を確かめるためにもmini Test-Driven Development by Exampleを書いてみることにしました。
使用している言語はRubyです。私はRubyが得意なわけではないのですが、Rubyなら処理系によるエラーメッセージの違いやIDEの操作方法の違いに惑わされずに済むかもしれないと思いRubyにしてみました。必要最低限の説明は入れましたのでRubyを良く知らない人でもわかってもらえればと思います。
おまけ
寺田雄一郎さんのStackクラスの作成をRubyに書き直したもの
参考文献
テスト駆動開発入門
ケント・ベック 著
Rubyを256倍使うための本 極道編
助田 雅紀 著
JUnit テスト熱中症:プログラマは、テストを書くのが好きになる
http://objectclub.esm.co.jp/eXtremeProgramming/TestInfected-J.html
各言語のテスティングフレームワーク
http://www.xprogramming.com/software.htm
リファクタリング プログラミングの体質改善テクニック
M・ファウラー 著、児玉 公信+友野 晶夫+平澤 章+梅澤 真史 訳
更新履歴
2003年05月05日 作製
2003年05月06日 HTMLの文法の誤りを修正。RedバーとGreenバーの表示を追加。
2003年05月07日 「2.矩形の重なりの面積」の終わりにデバッグの場合を追加
2003年05月08日 すみません。今までstylesheetを入れ忘れていました。
2003年05月24日 XHTML1.0にしてみました。
2003年06月30日 2の終わりのデバッグの場合を3に分離
2003年07月02日 2にAssert Firstの説明を追加。色盲を考慮し、RedバーとGreenバーの色を変更。3もちょっとだけ加筆
2003年07月05日 1をちょっとだけ加筆
2003年07月15日 1の終わりのテストプログラムを改良。「4.テストの定石−ログ文字列(Log String)−」を追加
2003年07月18日 3に例外のテストを追加
2003年07月18日 3の前半を削除して例外のテストだけに絞った。
2004年04月01日 「Stackクラスの作成」を追加。
2004年04月06日 「ShoppingCartクラスの作成」を追加。
2004年07月10日 RubyUnitからRuby1.8のTest::Unitに移植した。