Railsで使えるGem RubyOnRailsの開発環境

Rails3.2.8で自動テスト環境を整える〜cucumber+spork+guard

投稿日:

環境 ruby 1.9.3 & rails 3.2.8

参考 cucumber + spork + guard + factory_girl

あってもよいが rails new rails_app -Tなど、-Tオプションをつけてtestunitは除外しておくほうがなにかと都合がいい

Gemfile & bundle

*capybaraはhas_content?で正規表現をつかうため最新の2.0.0ベータをダウンロードする

インストール

rspecのインストール

エラーが出ないか確認

 cucumberのインストール

エラーが出ないか確認

sporkの初期設定

sporkはrailsなどを事前に読み込んでおいてテストをスピードアップする仕組みらしい

cucumberのspork設定にFactoryGirlの設定をしておく(cucumber/railsのうしろくらいに require 'factory_girl_rails' を追加)

guardの初期設定

Guardfile のspork設定の:test_unitを除外しておく

明示的にsporkの使用を指定する必要がある

*このままだと標準formatのprettyで出力されてしまうので、簡略化したprogressで出力したい場合は

config/cucumber.ymlにguardという名前のprofileを作成してGuardfileにはそのprofileを指定するのがいいようだ

その場合のGuardfileの記載

 

Guardの実行

別ターミナルで

止めるときはctrl + cで

動作確認

環境の例

以下は次の環境での例

fieature/post.featureファイルを用意

FactoryGirlのモデルを準備

*一応stringと書いたほうがいいみたい

feature/step_difinitions/post_steps.rbを用意

*has_content?がなぜか常にtrueになるので、should have_contentに変えた

動作確認

Guardを実行したターミナルに次のような表示が出ていれば成功

以後、緑の字をみると心が安定するようになる

rspec:scaffold

ちなみにrspecの場合は

などでひと通りのファイルを生成できる

まとめ

オブジェクト指向でクラスとメソッドの責任分担をしっかりするような場合はrspec、複雑なviewやcontrollerの場合はcucumberがそれぞれ向いているような印象

もちろん併用してもOK

 

テストファーストって言葉をはじめて知ったのは「Head First Java」という本

その本では、書くコードは3種類ある。人間の読むコード、テストコード、本番のコードって書いてたけど、cucumberはこれに近い気がする

 

 

下の本はちょっと古いかも

-Railsで使えるGem, RubyOnRailsの開発環境
-,

執筆者:

関連記事

Rails4で自動テスト環境を整える~cucumber&rspec&guard&spring&factory_girl

By: Tatsuo Yamashita – CC BY 2.0 参考 Rails3.2.8で自動テスト環境を整える〜cucumber+spork+guard Ruby2.0.0とRail …

no image

RubyからHyper Estraierを使う1~search_do

環境:Ruby 1.9.3 & Rails 3.2.7 参考リンク github.com/grosser/search_do Getting started with acts_as_sear …

文字をダブルクリックしてそのままフォーム編集するやつのメモ~in place edit

By: the Italian voice 目次1 Best in place2 Mercury editor3 create.js4 スクラッチで5 X-editable Best in place …

RVMでRubyのバージョンアップ

By: Geri Coady – CC BY 2.0 目次1 RVMのバージョンアップ2 Rubyのバージョンアップ3 2.0.0から2.1.0にバージョンアップ4 gemのバージョンアッ …

Rails3でテストカバレッジを計測する~simplecov,thin

    rspecなどのテストでテストがどの程度カバーしているのかを簡単に計測するsinplecovというgemをいれた 目次1 Gemfile & bundle2 spe …