Reports

PHPのテストについての勉強会+α

 Author:fumiyasac

IMG_0389

※この写真は勉強会とは関係ありません。この日の前日に母親が東京へ来ていたので、勉強会の前に新丸ビルで一緒にお昼をしたときに食べたハンバーグです。
という訳で本題に入ります。この日はコワーキングスペース茅場町にて(CakePHPとか)PHPのテストについての勉強会がありましたので参加してきました。

1. テスト駆動開発をまずは概念的に理解しよう

僕はデザイナーからプログラマにジョブチェンジをした身で(25歳+半年〜)となり始めが結構遅く、また始めた当時に所属していた所ではプログラマは自分一人だったのでテストまでは着手できていませんでした。「これではいかん!」と思いつつも今までできていなかったこともあり、今回の目標はこの2つにしました。

  1. 概念と重要性の理解
  2. テスト用にPHPUnitの準備をしてみる

まずは基本から押さえる形にしてみようと思いました。

2. 皆様の発表の中で特に心に残ったこと

発表された内容はどれも素晴らしかったです。こんなに便利な感じになるのかと感動しつつも、やはりまだまだ未熟なところもあり自分は全て理解できていないです。(大変申し訳ない)
しかしながら、「これは試してみたい!」または「自分の個人プロジェクトで使ってみよう!」という情報も多々ありましたので以下に簡単にまとめてみました。

特に試してみたいこと等
・テストの基本 & CakePHP2でTDD/BDD @sizuhikoさん
・「8時間耐久PHPUnitの教室」から「PHPUnitの基本」ひろみさん
=> CakePHP実践入門2も参考にしてテストしようと思います。
=> 8時間耐久PHPUnitの教室にできれば参加してみたいです。

・xDebugについて小林さん
=> 自分はNetBeansで開発しているのでxDebug導入してみようと思います。

丁度今作ろうと思っているサービスがCakePHPを使うし、今後も使って行こうと思ってますので、便利なものはどんどん取り入れていこうと思います。

3. テスト駆動開発の準備をしてみる

発表後に少し時間が空いたのでこちらの記事を参考に、PHPUnitを導入してみる事にしました。
自分が行ったテストの準備までの流れを以下に書きます(自分用です)

※一応、CakePHP2.3系を想定

1. まずはwgetコマンドを使える様にする(MacPorts経由)
sudo port install wget

2. cakephperさんの下の記事を参考にPHPUnitインストール
http://d.hatena.ne.jp/cakephper/20130124/1358996642
※Composer便利!

3. bootstrap.phpに以下のコードを書き加える
require_once APP . DS . ‘Vendor’ . DS . ‘PHPUnit’ . DS . ‘autoload.php’;

4. app/Test/Case/Controller(or Model or View)へテストコードを記述
この記事も参考にしました。※後でよく読んでおく
http://inoccu.net/blog/2012/06/23/112452.html

Console/cake test appで番号を選んで実行!

mod_rewriteが効いていないとブラウザからアクセスができないみたいでしたので、今回はターミナル経由で実験しました。言語の本と合わせてテスト周りの本も一度しっかり読んでおかないとですね。

4. 今回の振り返り

今回のトピックは業務や自分の個人プロジェクトでもクリティカルな話題だったので、限られた時間内でもしっかりと気をつけていければと思います。

後でまた読むスライドリスト
テストについて知るべきこと
8時間耐久PHPUnitの教室
Jenkins使うのならまずこれ

後でまた読む記事
CakePHPを使ったテスト駆動開発
[動画で解説]和田卓人の“テスト駆動開発”講座
CakePHP 2.xのtestActionをちゃんと理解しよう
Mac版NetBeansでWeb開発する上で、やっておくとそれなりに幸せになれるであろう事3つ+α

また次のステップとしてはJenkinsやSeleniumなども導入してもう一段上のステップに進んで行ければと考えています。
そして主催者や参加者の皆様、本当にお疲れ様でした。そしてありがとうございました!

※追記
今度機会があれば、プライベートでコワーキングスペース茅場町に行こうと思います。その際は宜しくお願いします。