例えば下記のようなコントローラーとアクションがあったとして、
class HogeController { public function regist() { $input = Request::input(); // バリデーション確認 HogeValidateService::check($input); // DBにユーザー情報を保存するメソッド HogeService::regist($input); // 登録された情報を関係者にメールを送信 HogeMailService::send($input); } }
内容としては単に3つのメソッドにpost情報を渡して実行するのみ。
しかしバリデーション、登録、メール送信処理はそれぞれそれなりに複雑で、アクション自体は割と複雑なことをやっている。
呼び出されているサービスメソッドは別途個別にちゃんとユニットテストを実装しているという前提となります。
こういうケースって
- サービスクラスは別途テストパターン作ってるのだから各メソッド内の細かい分岐とかは省略してバリデーション通過、DB登録、メール送信が正常にされているかを1~数パターンとかのみ確認。
- 各項目ごとのバリデーションの成功/失敗パターンとか登録されるステータスの詳細パターンの確認とかまで結構細かく確認する
- とりあえずstaticはやめてDIやらなんやらでモックと置き換えるようにして引数が渡されていることだけ確認する
どんな感じで行くのがいいのかよくわかっていません。
どこまで作るのが無難なのでしょうか?