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

執筆者:

関連記事

RVMが大変そうなので寄付した

クリスマスだしね 🙂 rvm.io/ www.bountysource.com/fundraisers/489-rvm-2-0 $10以上で名前が乗るよ $15以上でステッカーもらえるよ

no image

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

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

Railsでチェックボックスで複数選択するとき〜check_box_tag

By: Luca Masters – CC BY 2.0 目次1 問題2 アンサー3 情報 問題 チェックボックスで複数選択可のフォームでうまくparamsにはいらない 例1 [crayo …

RailsでECサイト構築2 注文してみる~spree

  前提 RailsでECサイト構築~spree さっきは日本に発送できなかったので、最小限の設定をして注文から入金・発送までの一連の流れをみてみる 目次1 設定2 注文してみる3 入金・発 …

no image

Rails3で動画配信を試用~flowplayer

  最近はYoutubeなど動画配信サイトも充実してきていて知人向けのプライベートな配信も可能なようだ しかし、やっぱりYoutubeにアップするのは抵抗があったり、LAN内だけで配信したい …