Hatena::ブログ(Diary)

いたさんの日記

2010-09-08

Rails3で自分専用のブログを作る(16) ─ RSpecに必要なwebratを追加

rake spec

でspecを実行してみるとhave_tagなどがNoMethodErrorになってしまいます。こうしたセレクタはwebratが持っているものなのでこれを追加する必要がありそうです。

gem install webrat --pre

と実行し、最新のベータ版をインストールしました。

次に、Gemfileに必要なgemとして定義します。本番環境には必要のないものなので、下記の様にグループを定義して、ブロック内に記述しましょう。

group :development, :test do
  gem 'capybara'
  gem 'database_cleaner'
  gem 'cucumber-rails'
  gem 'cucumber'
  gem 'rspec-rails', '2.0.0.beta.20'
  gem 'rspec', '2.0.0.beta.20'
  gem 'spork'
  gem 'launchy'
  gem 'webrat'
end

この後、build install することでエラーが出なくなりました。

2010-08-26

Rails3で自分専用のブログを作る(14) ─ Cucumber, RSpecをgenerate

Railsアプリを生成した後、CucumberやRSpecを生成していなかったので、生成する事にします。

まず、cucumber-rails の README を参照すると、Gemfileに下記の追加を行う必要があるらしい。

gem 'capybara'
gem 'database_cleaner'
gem 'cucumber-rails'
gem 'cucumber'
gem 'rspec-rails'
gem 'spork'
gem 'launchy'

これを追記して bundle install を実行します。おっと、nokogiriのインストールでエラーに。libxslt関連のヘッダがないようです。

sudo apt-get install libxslt-dev

を実行してから、再び bundle install で大丈夫になりました。これで、cucumber を生成できます。

ruby script/rails generate cucumber:install --help

オプションを確認し、次のように生成しました。

ruby script/rails generate cucumber:install --capybara  --rspec

つぎはRSpec です。Gemfileにrspec-railsが登録済なので、次のようにうってみると、

ruby script/rails generate rspec:install

rspec generatorが見つからないとのエラー。調べてみると、Rails 3に対応したRSpecは 2.0ですが、正式リリースはされていません。

gem install rspec-rails --pre

で 2.0.0.beta.20がインストールできました。ただ、このままでbundle install しても、rspecは古いままなので、Gemfileのrspec関係の記述を次のように修正しました。

gem 'rspec-rails', '2.0.0.beta.20'
gem 'rspec', '2.0.0.beta.20'

これでbundle install してから、

ruby script/rails generate rspec:install

これでOKでした。