Steak を Request Specs + Capybara に変更してみた
WEB+DB PRESS Vol.61の 「Rails 3テスト最前線」を読み Steak を使わなくても RSpec 2.0 の新機能 Request Specs と Capybara を組み合わせる事で Steak 同様にテストが書ける事が判ったので試してみた。 Steakに付いては、ここ
- 作者: 西岡祐弥,濱田章吾,横山彰子,浜本階生,ミック,uupaa,塙与志夫,はまちや2,大沢和宏,中島聡,矢野りん,中島拓,浦嶌啓太,角田直行,佐々木一,倉井龍太郎,深町英太郎,岩永賢明,高橋健一,柴田博志,井上誠一郎,大谷弘喜,荻野淳也,原悠,増井俊之,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2011/02/24
- メディア: 大型本
- 購入: 37人 クリック: 2,058回
- この商品を含むブログ (38件) を見る
環境の変更
1. Gemfile からはSteakを除く
group :test, :development do gem "rspec-rails" gem 'capybara' gem 'spork' end
2. spec_helper.tb に capybara/rails を追加
・・・ require 'rspec/rails' require 'capybara/rails' ・・・
3. steakの helpers.rb, paths.rb を spec/support に移動し :type を変更
module NavigationHelpers def list_page "/todos" end def new_page "/todos/new" end def edit_page(id) "/todos/#{id}/edit" end end RSpec.configuration.include NavigationHelpers, :type => :request
RSpec コードの変更
変更はごくわずかで
- feature → describe
- scenario → it
- require File.expand_path..... → require 'spec_helper'
- spec/acceptance/*_spec.rb → sepc/requests に移動
例
require 'spec_helper' describe "Todo一覧の表示" do fixtures :todos it "Todo一覧が表示できる" do visit list_page page.should have_css("h1", :text => "Listing todos") page.all("table tr:eq(2) td")[0..1].map{|e| e.text}.should == ["2011-02-18", "打ち合わせ"] page.all("table tr:eq(3) td")[0..1].map{|e| e.text}.should == ["2011-02-20", "開発"] end end