10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

テスト(Rails)について

Posted at

ゴール

  • 要求仕様通りに動作すること
  • 要求するデザインになっていること

疑問点

  • どこまでテストを書くべきか = 計画、分析、納期で決める
  • どの優先度でテストを書けば良いか = 計画、分析、納期で決める
  • どのようにテストを書けば良いか = フレームワークに合わせて決める

————-

どこまでテストを書くべきか

テストの種類

  • Model = 単体テスト
  • Controller = 結合テスト
  • View = 受け入れテスト

どの優先度でテストを書けば良いか

Railsの場合は設計思想が Skinny Controller なので、

  1. Model
  2. View
  3. Controller

という優先度の場合が多い。

その他の指標

  1. 機能の重要性
    • 企業側の損失
    • ユーザ側の損失
    • 復旧の大変さ
  2. テスト実装のコスト

この辺りは直行表が参考になる。

どのようにテストを書けば良いか

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
10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?