問 . テストはなぜ書くのか説明せよ

<テスト>

 プログラムが意図した動きになるか確認するために作るもの。事前にバグがないか確かめることができる

 

<メリット>

●仕様漏れを防ぐ(テストで動作の洗い出しをする)

リファクタリングしやすい(テストを書いておけば、リファクタリングして挙動がおかしくなってもすぐに気づける)

 

<テストを書く原則>

①各exampleで期待の値は一つだけ

②期待値ははっきりとわかりやすく

③起きて(ほしい/ほしくない)の両方をテストする

④境界値をテストする(6字バリデーションなら5字と6字の両方をテストして確認する)

⑤可読性を意識して適度にDRYに書く(※わかりやすさ優先)

 

<種類>

単体テスト…一つのプログラムに対するテスト(ex:コントローラの投稿機能一つにつきテスト・商品購入機能一つにつきテストなど)

Rspecのテストとか、Factory_botのダミーインスタンス作りとか

 

●統合テスト…複数の連動するプログラムに対するテスト(ex:ユーザー新規登録テストだと「入力」→「送信」→「保存」→「ログインして投稿できる」という一連の流れができるかをテストする。)

□Capybaraとかでこの一連のサンプルを試してくれる

 

以上。テストの意義でした。備忘備忘。