DBのテスト
スタブ(?)を作らずに実際のO/Rマッパーを使いつつテストを書く方法で今のところ大丈夫。
これだとさくさくテストが書ける。
というわけで、トランザクションを開始位置を根こそぎアクションクラスに移動中。
ついでに引数の受け渡し方もテストしやすいものに修正。
今まではidを渡していたところがいくつかあって、それをオブジェクトで渡すようにした。
PHP5なので、オブジェクトの値を見て変更されたかどうかを簡単に知ることができる。
っていうか・・今まで何も考えずにidだけ渡してユーティリティ的なクラスの方でDBからデータを取得ってやってた考え方が間違ってただけか。
こういうのは周知の事実なんだろうか。単に情報を探せてないだけなのかな。検索するにしてもキーワードが思い付かないしなぁ。
$dao->save($item) の位置もアクションクラスにした方がいいのかな?そうするといちいちロールバックしなくてすむ。
でも段々アクションクラスがもっさりしてくる・・。困ったな。
共通クラスの中でsaveしてしまうと、複数の共通クラスを使った場合に無駄にsaveすることになる・・というか現状そうなってる。リファクタリングすることにして後回しにするかなぁ。。