ishida

2012.09.19

PHPカンファレンス2012でテストについて話してきた

9月15日のPHPConで貴重な15分枠をいただきUnitテストについて話させていただきました。Unitテストだけで問題の全てを解決出来ると考えている訳ではありませんが、無駄に複雑なコードをリロードでデバッグしただけでろくなテストをすることも出来ず、なんとなくリリースしては問題を起こす…… という事態に陥りがちなWebアプリの現場をひとつでも救うきっかけになれば…… と思って登壇致しました。

日頃、UnitTestされている方には凄く当たり前な内容で恐縮なのですが要旨としては以下でした。

・ちゃんとUnitテストしましょう
・クラス設計をする時には疎結合に作りましょう
=> 関連オブジェクトはメンバ変数に
=> そのメンバ変数をセッタで上書き出来るように
・外部システムにはラッパーを作りましょう
・メソッド単体の複雑度は分割しましょう

今回の話では削ったのですが、上記の基本にもうひとつ付け加えると、
「内部で複数回の生成を行いたい場合や複雑な生成を行いたい場合はファクトリメソッドパターンを適用して、ファクトリのオブジェクトはメンバ変数に持ってセッタで上書き可能にすると良い」
というのも有ります。

今回使ったサンプルソースは こちらからダウンロード出来ます。どこかで機会が有れば、既にある「UnitTestに入れられないソースを、どのようにテストするか?」ということについても話せたらなーと思います。