はじめる!Cucumberは、分かった時点ですぐ購入しちゃったんですが、ずっと放置したままだった。最近Yokohamarb #20に参加して、またテスト周りのお話しが出たので、Cucumberを勉強したくなった。

写経しないといけない為、環境構築しようと思ったが、ハマったことをメモ

環境

  • cucumber 1.2.0
  • cucumber-rails 1.0.6
  • capybara 1.1.2
  • rails 3.2.3
  • guard 1.0.3
  • guard-cucumber 0.8.0
  • guard-spork 0.8.0
  • spork 0.9.2

web_steps.rbが生成されない

  • rails g cucumber:install ja --webrat --rspecを実行しても、features/step_definitions/web_steps.rbfeatures/support/paths.rbは生成されてない
  • 調べてみたら、cucumber 1.1.0から生成されないようになっている
  • まあ、ちゃんと勉強してねという意味はわかって、頑張ろうと思ったが、やはりRailsも初心者だし、RSpecもよくわかってなくて、書こうと思っても全く進められない為、やめました。
  • 結局は、cucumber-rails 1.0.6で写経するようにしました

本のバージョンとの違いによる箇所

  • Rails 3からの変更なんですが、rails g cucumber:**install**のようになった
  • bundleを使ってるので、Gemfileに記入する
    • gem 'cucumber-rails', '1.0.6', :require => falseのように書いている

手順

  • rails new cucu -T --skip-bundle
  • Gemfileファイル編集

```ruby Gemfile source ‘https://rubygems.org’

gem ‘rails’, ‘3.2.6’ gem ‘sqlite3’

group :assets do gem ‘sass-rails’, ‘~> 3.2.3’ gem ‘coffee-rails’, ‘~> 3.2.1’ gem ‘uglifier’, ‘>= 1.0.3’ end

gem ‘jquery-rails’

group :develpment, :test do gem ‘database_cleaner’ gem ‘cucumber-rails’, ‘1.0.6’, :require => false gem ‘guard-cucumber’ gem ‘guard-spork’ end ```

  • bundle install --path vendor/bundle
  • bundle exec guard init cucumber
  • bundle exec guard init spork
  • bundle exec spork --bootstrap

これで環境が出来た