Category: UnitTest

12/17(木)、7月に転職した職場で初の社内勉強会を開催した。

内容

テーマと進め方

テーマはTDD(テスト駆動開発)。以前からこのblogをお読みの方には見覚えがあると思うが、前職で行った社内勉強会のネタを焼き直しただけのものである。

具体的には、オブジェクト倶楽部で公開されている「車窓からのTDD」[PDF]の内容をPHP + SimpleTest環境でやってみよう、という内容。2003年のものだが、今でもTDD入門としてものすごく有用なドキュメントである。

会場は社内の会議室。各自にノートPCを持ち込んでもらい、ハンズオン形式で実際にコードを書いてもらいながら進めた。また、ペアプロの前段階として「相方」を設定し、質問や相談などは「まずは相方から」というルールを設定した。

資料

スライドはこちら。

「実装例」として書いたコードはこちら。

「20091217_tdd_source.zip」をダウンロード

(さらに…)

イベントが重なったり連休に突入したりですっかり遅くなってしまったが、社内勉強会もちゃんとやってますよということでエントリ。

4/22(水)、初登場のkatsumicPHPUnitについて担当してくれた。スライドはこちら。

内容が有意義なものだったのも素晴らしいし、そのあとテストについてチームで語らうことができたのも素晴らしい。ちゃんと続けていてよかったなぁ、と、最近続けて勉強会の夜は嬉しい気分のまま帰ることができている。

そしてどうやら、水曜の勉強会のあとはOOPJogが定番化しそうな予感。この日は#2が開催されたので、勉強会終了後、同僚とぞろぞろ走ってきた。

とうとう年内の予定は今回でコンプリート!の社内勉強会。当初の予定通りTDD+ペアプロでのライブコーディングを行った。ネタは結局使いまわしてしまったが…。

一応スライドは作ったが、今回はあまり重要ではない。

(さらに…)

前回準備した「PHPUnit」のサンプル。「オブジェクト倶楽部」で紹介されている「車窓からのTDD」(PDF)という記事を参考に、TDD(Test Driven Development / テスト駆動開発)とペアプログラミングの演習記事をPHPUnitでなぞってみた。残念ながら自宅で独りで書いたので、ペアプロのサンプルにはならないが。

作るのはスタッククラス。仕様は…

  • isEmpty()でスタックが空の場合、true。それ以外false を返す。
        boolean isEmpty()
  • size()でスタックのサイズを取得する。
        int size()
  • push()で引数の値をスタックの一番上に積む。
        void push(int value)
  • pop()でスタックの一番上の値を取り除く。
        void pop()
         スタックが空の場合、java.util.EmptyStackException が発生する
  • top()でスタックの一番上の値を取得する。
        int top()
         スタックが空の場合、java.util.EmptyStackException が発生する
  • (p.3)

…となっている。

(さらに…)

やらねばならないのは痛いほどわかっていたが、面倒なのでひたすら先延ばしにしていたユニットテスト。既存のコードに組み込むのはほぼ不可能というのを言い訳にしてきたが、さすがに新しくフレームワークを実装するとなれば書かないわけにはいかないだろう。

そんなわけでPHP用UnitTestの本流、xUnitファミリの一員であるPHPUnitを導入してみる。環境はWindows XP SP3 / xampp 1.6.6a。

(さらに…)