Rails勉強会@東京第38回
- 今日は TIS さんにて開催
- 会場提供ありがとうございます.
- 今日もおとなしめで.
RSpec と Cuke
- 2009/01/24の仙台Ruby会議での発表資料
- 永和システムマネジメントの提供です.
いままでのテストを振り返る
Test for developer
- RSpec on Rails 以前は
- UnitTest
- Model のテスト
- FunctionalTest
- View/Controller/Helper のテスト
- Integration
- アクションをまたぐ,ブラックボックステスト
- 書くのが難しくてあまり流行らなかった
- UnitTest
- RSpec
- BDD フレームワーム
- Stub/Mock が build-in
- RSpec で Model/Controller/View/Helper の個別のテストはできるようになった
- ただ Integration テストは・・・・
- Cucumber 到来
- なぜ Better Integration Test なのか
- 方針として
- Fat Model
- ロジックはモデルに
- Thin Controller
- find/new 以外のモデルのメソッドは1つぐらいにしといた方がいい
- そうすると
- RSpec で Model のテスト
- Cucumber で統合テスト
- Fat Model
Cycle of development
- 書き方
- feature/step を書く
- テストする
- 失敗する
- テストをパスするように書く
- 繰り返す
- 資金が尽きるまで繰り返す
- クライアントと Cucumber ベースに仕様を詰める
- JS などは Selenium を
まとめ
- RSpec + Cucumber でテストの仕方が変わった
- クライアントとも Cucumber ベースで受け入れテストがしやすい
Q&A
Rails 2.3.0 を読む
- Rack 対応になった
- スッキリした感じ?
- Rails 2.3.0RC では Rack 1.0 で動作している
- Active Record
- Nested Model と default_scope は便利そうです
- Action Controller
- render が賢くなった
- application.rb が application_controller.rb に変更された
- routing が高速に
- i18n 対応(show.ja.html.erb)
- Action View
- render @article で render :partial => "..." が呼ばれるように
- Active Support
- Object#try
- NoMethodError を返さないようになった
- Object#try
- Railities
- Rails Engines
- plugin に model/controller/view/helper などを設置できる