xUnit is a language for beginners

単体テストをライブで行うセッション。とても面白かった。とくにEclipseの進化はすごい。ある面でVisual Studioを超えてしまっているのではないか?これもオープンソースソフトの力なのか。これまでテストメソッドといえばtestという接頭語をつけて、assertEqualsというメソッドでチェックを行う、というのが今までだったが、もう違う。テストメソッドかどうかというのは、メソッドの前に@testをつける、assertequalsではなく、assertthatをつかい、英語の流れにする、など。とくに、testという接頭語をつけなくてもよくなったせいか、プレゼンターの和田さんは、メソッド名を日本語にし、より何のテストか明確にしていたのが、興味深い。
私も今回の開発でテストの威力を知ったので、Javaで開発したくなった。角谷さんの「JavaからRubyへ」を買って、サインまでしてもらったのに。
ところで、少し気になったのが、あくまでもこのテストは開発者向けのテストであり、受け入れテストや品質保証とは違うとおっしゃっていた点だ。私は、違うのは内容ではなく、視点が違うのであり、それらは実は共通している部分が多いように思う。たしかにこのテストだけで完璧かといえば、そんなことはないが、実はかなりの部分の受入テストや品質保証の部分をカバーできるように思う。あまりにも開発者の不安を取り除くためのテストだとおっしゃっていたのが、少し気になった。開発者の不安を除くとコードの品質がグンとあがりますよーみたいなこともいうと、マネジメント層にうけたのでは。和田さんはきっと正直なひとなのだろう。
ところで、FizzBuzz問題が本当かどうか私には疑わしい。だって、これって、こう書けばよいのでは?(Rubyなら)

print "1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz, 16, 17, ......"

剰余を使わずに、シンプルな解法といえる???
でも、テスト駆動型開発から見ると上は実はシンプルじゃないかも。テストソースにて上と同じように100までのfizzbuzzをもう一回書かなければいけないから。テストを考えると剰余の方が、わかりやすく、テストも数個のシンプルな物をつくればよい。すなわち、テスト駆動開発すると、よりテストのしやすいプログラムがつくれ、結果としてプログラムも美しくなる、ということかな?