読者です 読者をやめる 読者になる 読者になる

TDD Boot Camp 札幌 2.3に参加してきた

お題はボーリングのスコア計算システムPHPチームで参加してきました。

ドキュメントを見ようとしたら、PHPUnitのサイトに全然接続できなくてどうしようかと思いましたが、githubでドキュメントのソースのxmlを見ながらどうにか頑張りました。

@shuji_w6eからもお誉めの言葉をいただき、半日Emacsと格闘したかいがありました。

よかったこと

  • PHPUnitで試してみたかったことが色々できた

テストメソッド名は日本語で書いてみました。--testdoxで出力する場合、英字の大文字小文字変換を行なうところで若干文字化けがあったため、先頭は英字という命名規則でやりました。testdoxを使わないのであれば問題無いと思います。

@testアノテーションも使ってみましたが、メソッド名にtest付けた方が速いかなという気もしましたw。@expectedException、@dataproviderアノテーション、markTestIncomplete()は普通に便利。assertThat()も使ってみたかったんですがドキュメント見るのしんどくて断念。

  • 「1つ上のレイヤーからテスト駆動開発にアプローチする」というテーマを実践できた
  • 簡単にテストを実行すること。見やすく書きやすいテストケースを書くことが重要ということを再認識できた

反省点

  • 終了直前までボウリングのスコア計算のルールを勘違いしていた。まだまだ実装するつもりだったのに気付いたら機能テストが通っていた
  • 機能テストが通った時点で満足したのと若干集中力が切れたのでニコ動とか見てた

他のチームの振り返りを聞いている途中でやっと何故テストが通ったのかきちんと頭が整理できました。振り返りの順番が最初だったら説明できなかったかもしれませんw
ちなみに見ていた動画はこちら

2008年の角谷さんの講演。2/3からボウリングスコア計算のライブコーディング。見所満載です。

その他

  • Behatやってみたい
  • JavaScriptやってみたい
  • pgTAPやってみたい
  • SmalltalkとTDDBCの相性は異常
  • Perlのテストコードも見てみたい
  • 関数型言語のテストコードも見てみたい
  • SCMのイベントもできそうじゃない?

他にも色々ありましたが気が向いたら書きます。