問 . テストはなぜ書くのか説明せよ
<テスト>
プログラムが意図した動きになるか確認するために作るもの。事前にバグがないか確かめることができる
<メリット>
●仕様漏れを防ぐ(テストで動作の洗い出しをする)
●リファクタリングしやすい(テストを書いておけば、リファクタリングして挙動がおかしくなってもすぐに気づける)
<テストを書く原則>
①各exampleで期待の値は一つだけ
②期待値ははっきりとわかりやすく
③起きて(ほしい/ほしくない)の両方をテストする
④境界値をテストする(6字バリデーションなら5字と6字の両方をテストして確認する)
⑤可読性を意識して適度にDRYに書く(※わかりやすさ優先)
<種類>
●単体テスト…一つのプログラムに対するテスト(ex:コントローラの投稿機能一つにつきテスト・商品購入機能一つにつきテストなど)
□Rspecのテストとか、Factory_botのダミーインスタンス作りとか
●統合テスト…複数の連動するプログラムに対するテスト(ex:ユーザー新規登録テストだと「入力」→「送信」→「保存」→「ログインして投稿できる」という一連の流れができるかをテストする。)
□Capybaraとかでこの一連のサンプルを試してくれる
以上。テストの意義でした。備忘備忘。