RSpec とは
RSpec とは
RSpec とは、Ruby における BDD (behavior driven development、ビヘイビア駆動開発) のためのテストフレームワークです。
BDD という言葉に聞き慣れないかもしれませんが、
テストコードを、自然言語を用いて要求仕様のように (Spec = 仕様
) 記述するための手法です。
テストコードを書く意義
- 全体のテスト工数削減
- テスト対象コードの品質向上
- テスト対象コードの粒度の見直し
- 後々リファクタリングしやすくなる
- Ruby のような動的型付け言語の場合、ちょっとしたミスが実行時例外を生むため、基本的なパスを通すテストが必要
テストコードを書くにあたって意識すること
テストコードをなるべく簡単にかけるように工夫する
- テスト実行に必要なデータを準備する処理をまとめる、等
- DRY はここでも活かす
- ただし、必要以上にキレイに書く必要はありません
テスト対象コードの責務を意識する
- 本来テストしたいことと関係のないデータをセットアップしないとテストが通せない場合、コードの責務が間違っている可能性があります
- テスト対象コードの責務以外の箇所についてはモック/スタブを利用しましょう
メンテできなくなったら最悪捨てることも想定して、とりあえずテストを積んでいきましょう