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の開発環境
-,

執筆者:

関連記事

no image

Git用サーバのgitoliteにユーザー追加

環境 Git用サーバのgitoliteをインストール クライアントでssh用の鍵を作成

 ssh用のpub鍵を管理者に送信 sftpで …

Rails3.2で位置情報を日本語表示の住所に変換する~geocoder

ついにブログ記事が100件突破した! そのうちメニュー項目などをわかりやすく構成し直したいと思う いまはRailsのプログラムが楽しくて仕方ない時期なので色々と試して書き溜めたいと思う EverNot …

sunspot_railsで全文検索

sunpotはsolrというJava製の全文検索サーバをrubyから使えるGem sunspot_rails はsunspotにマージされてました 参考 railscasts.com/episodes

no image

Rails3.2でOpenDocumentText(.odt)を作成~serenity

  これも途中経過デス   odtはOpenOffice.orgのwriterなんかの保存形式 serenityはerbライクなodtテンプレートから変数を利用して文書を作成してく …

RailsでECサイト構築5 プロモーションを試す~spree

  spreeをインストールするとspree-promoというエクステンションが含まれている これを使うといろいろな販売企画をすることができる 管理画面から適当に作成してみる 今回は特定の商 …