#44-3 Laravel製フォームの機能をテストする

## !WIP!

Laravelで作成したフォームをPHPUnitでテストします。

:star2:  __TODO__ :star2: ※テストが書きにくい場合随時変更する。
***
- [ ] テスト記述
- [ ]   TOP画面
  - [ ] リクエストがGETであるか？
  - [ ] Sessionが空になっているか？
  - [ ] リンクで入力画面に遷移出来るか？

- [ ] TOP→入力
  - [ ] リクエストがGETであるか？

-  [ ] 入力画面
  - [ ] エラーメッセージがある場合、表示出来ているか？

- [ ] 入力画面→確認画面
  - [ ] リクエストがPOSTであるか？
  - [ ] 画面遷移時、一部の入力データを確認画面表示用に加工しているか？
    - [ ] 趣味欄(入力値を全て結合し1つの文字列にする)
    - [ ] 都道府県
      - [ ] DBからidと名前のリストを取得
      - [ ] 上記リストをkey=>valの形で配列に突っ込む
      - [ ] 無記入の場合の値が入った配列と結合する
      - [ ] 入力値は都道府県IDなので、対応するIDの都道府県名をセットして渡す
  - [ ] 加工したデータを、確認画面へ遷移するときに渡せているか？

- [ ] 確認画面→入力画面
  - [ ] レスポンスがリダイレクトであるか？
  - [ ] セッションがエラーを持っているか？
  - [ ] 直前の入力値を持っているか？

- [ ] 確認画面
  - [ ] バリデート下準備
    - ※対象=`$form_data_trimmed`(配列。POSTデータから前後の空白を除いた入力値が入っている)
    - [ ] 上記配列に値が入っているか？
    - [ ] 上記配列に入っている値は空白が除かれているか？(半角・全角ともに)
  - [ ] バリデータ
    - [ ] `required`：対象にデータが存在するか？
    - [ ] `max`：全角49字・50字・51字で試してそれぞれバリデータが弾くか否か？
    - [ ] `regex_full_width_chars`：全角文字の正規表現に対象の文字列がマッチするか？
    - [ ] `regex`(郵便番号のバリデートで使用)：数値のみの正規表現にマッチするか？
    - [ ] `size`：n-1字, n字, n+1字の入力でn字のみバリデータが通るか？
    - [ ] `exists`：DBに指定カラムが存在するか？
    - [ ] `email`：emailの書式に合う|合わない値を入れてみて通るか？
    - [ ] `requied_if`：特定のキーに期待する値が入っているか？
  - [ ] 趣味欄：チェックボックスへの自動入力
    - [ ] その他詳細に値有・値無の2パターン？用意して試す

- [ ] 完了画面
  - [ ] リクエストがPOSTであるか？
  - [ ] DBに接続できているか？
  - [ ] クエリで入力データをDBに挿入できているか？
  - [ ] 挿入が終ったらDB接続が切れているか？