ゴール
- 要求仕様通りに動作すること
- 要求するデザインになっていること
疑問点
- どこまでテストを書くべきか = 計画、分析、納期で決める
- どの優先度でテストを書けば良いか = 計画、分析、納期で決める
- どのようにテストを書けば良いか = フレームワークに合わせて決める
————-
どこまでテストを書くべきか
テストの種類
- Model = 単体テスト
- Controller = 結合テスト
- View = 受け入れテスト
どの優先度でテストを書けば良いか
Railsの場合は設計思想が Skinny Controller なので、
- Model
- View
- Controller
という優先度の場合が多い。
その他の指標
- 機能の重要性
- 企業側の損失
- ユーザ側の損失
- 復旧の大変さ
- テスト実装のコスト
この辺りは直行表が参考になる。
どのようにテストを書けば良いか
rspecを使用する
- Model
- Controller
- View(js.e2e)
- selenium-webdriver 3.6.0
- Capybara 2.15.4
- Chrome 62
- ChromeDriver 2.33
関連ツール
- テストデータ生成 = FactoryBot
- テストデータ = Faker
- データの初期化 = DataBaseCleaner
テストのリファクタリング
- 開発段階、開発終了後では必要なテストは変わる
- 特にE2Eのテストは、リリース前は粒度が高いが、リリース後はviewの変更などもあるため絞り込む必要がある
- Model > E2Eのテストのようになる必要がある. E2Eでバリデーション(エラー)の確認は行うべきでない
Document
- Capybara
- Rspec
- FactoryBot