めもめも。先日の続きです。

最初からRSpec使ってれば良かったんですが、後から知ったもので、既にアプリを作っちゃってる場合を考えます。ここに後からRSpecを導入して、テストする、というのを試してみました。

環境

$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
$ rails -v
Rails 3.2.1

準備

とりあえずこんなプロジェクトを準備。

rails new my_shop
cd my_shop
rails g scaffold item name:string description:text price:integer on_sale:boolean
rake db:migrate

インストール

前回と同じ。

  • Gemfile
gem 'rspec-rails'
bundle
rails g rspec:install

RSpec開始

rails g rspec:scaffold item name:string description:text price:integer on_sale:boolean

あらやだ簡単じゃない!(口に手を当てて)

他にもrspec:controllerとかrspec:modelとかrspec:viewとかあるらしい。自分で作ったのに合わせって、ほとんど同じ内容でコマンド打てるんだなあ。ありがてえ、ありがてえ……!

今回は本当にscaffoldrspec:scaffoldとに同じ引数与えているが、migrateしている場合でも、現時点でのスキーマに合わせた内容で作れば良いかと。

ちなみに同じコマンドを打ち直すと上書きができる(聞かれるのでYにする)ので安心です。

で、試験実行。

rake spec

エラーが出たら順次書き直しを進めて、完了。お手軽だね。