以前に作成した資料を拝見くださった方が、twitterにてフォローいただいたとのことなので、
現状手元にあるCIUnitがどのような状況なのか、書いてみたいと思います。
◆ネコネットデザイン事務所ホームページ
CodeIgniter 1.6.2に組み込み
modelを中心にテストを書いてみました。
運用サーバ上にテストをアップしないように、applicationフォルダ以下をSVN管理上のファイルとして扱い、
テストは自分だけに見える状態として扱ってます。
◆MyNETS2 にCIUnitを組み込み
リビジョン番号を控えわすれてますが、リポジトリからエクスポートさせていただいたのが2009年4月9日となっているので、かなり古いものです。確認しましたがその頃のファイルは残ってないようなので、現在レポジトリで公開されているものとは中身が違うようです。
設定ファイルの設定でCIUnitのON OFFを制御させています。
テストコードも複数人で共有できるようにSVN管理しています。
現在これをベースに組んでいたものは、途中でやる気を失ってしまい放置状態ですorz
この時点で発生した問題としては、セッション系の部分とモバイル、PCの判定部分を突破できず、コントローラのテストはできませんでした。モジュール、ヘルパー、ライブラリに関してはphpUnitは正常に動作し、テストが実行できる状況が作れています。
この2ヶ月ほどは、7月頭ぐらいにコミットされてるリビジョンのMyNETS2をいじっていますが、まだそれにはCIUnitは組み込んでいません。CIUnitとは違う方法でのphpUnitの利用を模索中です。
◆まだTDDにはたどり着いていないという事
去年のOSC、
そしてt-wadaさんの「TDDテスト駆動開発」を拝見してから、テストせねばということでテストをするということに取り組んでるわけですが、実際のところまだTDDの、「先にテストを書く」というところには、まだたどり着いていません。
コードを書く→ちゃんと動くかテストを書く→テストを動かしてみる。
私はついつい長々とコードを書いてしまうので、
処理を分割する→テストを動かす→うごいてる♪
な、動作の確認にもテストを動かして、確認をしている感じです。
CIUnitで書いているテストは、Modelに対して行っています。
少しずつですが、最近はhelperに対するテストを書き始めました。
不器用なので、まだテストという技術を身につけるには至っていないと思いますが、少しずつできるようになってきているのかなと感じています。
◆コントローラのテストに対する考え
MyNETS2に組み込んだCIUnitも素の状態の1.6.2に組み込んだCIUnitも、
現状Controllerのテストはやりにくい状態です。
この部分は、無理にUnitテストではなく、目視での確認
バッチでコントローラを走らせた後に、DBの値を検証をする、もしくはWebアプリケーション用のテストツールSelenium等を利用した、別の形で行うのが良いかと思っています。
model,helper,ライブラリ等で、何を投げて何が返ってくるのかにだけ注目し、他は行わないという割り切りがあっていいかなと思っています。