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

## !WIP!

Laravelで作成したフォームをPHPUnitでテストします。

:star2:  __TODO__ :star2: ※テストが書きにくい場合随時変更致します。ご了承ください。
***
- [ ] テスト記述
- [ ]   TOP画面
  - [x] リクエストがGETであるか？
  - [ ] Sessionが空になっているか？
  -  ~~リンクで入力画面に遷移出来るか？~~

- [ ] TOP→入力
  - [x] リクエストがGETであるか？
  - [ ] DBから都道府県リストを取得しているか？
  - [x] viewにdataが渡っているか？

-  [ ] 入力画面
  - [ ] エラーメッセージがある場合、表示出来ているか？

- [ ] 入力画面→確認画面
  - [x] リクエストが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パターン？用意して試す

- [ ] 完了画面
  - [x] リクエストがPOSTであるか？
  - ~~DBに接続できているか？~~
  - ~~クエリで入力データをDBに挿入できているか？~~
  - ~~挿入が終ったらDB接続が切れているか？~~
試しに、
```php
var_dump($response);
```
してみてください。
多分意図しない値が入っていると思います。

ここもassertResponse系のメソッドを使ってテストを書いてみましょう。