Allied ArchitectsAllied ArchitectsEngineer Blog

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

2012/09/19 PHP

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

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

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

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

UnitTestのためのクラス設計 from Takeshi Ishida

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

ishida
  • ishida
  • アーキテクト
  • なるべく他のメンバーは書かないであろう流行りとは程遠いところや、 枯れたキーワードについて書いていこうと思います。 Perl / Java / PHP 及び周辺技術に興味があります。

RELATION ENTRY

ポケモンでOOPしていく(その3)(Advent Calendar 25日目)

ポケモンでOOPしていく(その3)(Ad...

2014/12/25 PHP

挨拶 メリークリスマス! Adevent Calendarの最終日です。ポケモントレーナーの石田です。 僕はクリスチャンではありませんが、アドベントカレンダーのラストを飾ることになってしまいました。そんな僕ですが、クリスマス・イヴのイヴはeveningで、アダムとイヴのイヴとは関係ありませんので...

続きを読む

Inside of Allied Architects(Advent Calendar3日目)

Inside of Allied Arc...

2014/12/3 開発基盤

挨拶 アドベントカレンダー3日目を担当するポケモントレーナーの石田です。ORAS発売されましたね!皆さんは、もうチュートリアルも終わって厳選態勢に入っているのではないかと思いますが、僕は諸々あって厳選態勢には一歩出遅れている状態です。いっそ、なりふり構わずORASで捕まえたポケモンを環境の整ってい...

続きを読む

ishidaの記事一覧へ

ページTOPへ