2013年10月10日木曜日

RSpec with Rails4

今日はrspec-railsを使ってRails4にRSpecを導入してました。ここ(https://www.relishapp.com/rspec/)にドキュメントがすごくしっかりまとまっているので、これを見ながらやってました。

導入は相変わらず超簡単でGemfileにこんな感じで追加してbundle installした後にrails genearateで必要なファイルを生成するだけ。

# RSpec
group :development, :test do
  gem 'rspec-rails', '~> 2.0'
end

bundle install
rails generate rspec:install

モデルを作ると以下のようにTest:Unitの代わりにSpecを自動生成してくれる。
rails generate model test name:string
      invoke  active_record
      create    db/migrate/20131011100432_create_tests.rb
      create    app/models/test.rb
      invoke    rspec
      create      spec/models/test_spec.rb

Specだけ作りたい時はこんな感じ。
rails generate rspec:model user
      create  spec/models/user_spec.rb

こんな感じで他のSpecと同じように書けます。ちゃんとRubyMineで補完もしてくれる。

describe User do
  before :each do
    @testee = User.create! email:'hoge@hoge.com', password:'testtest'
  end

  it 'has fields' do
    expect(@testee.email).to eq('hoge@hoge.com')
    expect(@testee.password).to eq('testtest')
  end
end

bundle exec rspecで実行はできますが、.rpecファイルか引数でformat指定するとSpecの出力もしてくれて少し幸せになれる。

bundle exec rspec --format documentation

User
  has fields

Finished in 0.40579 seconds
1 examples, 0 failures

Randomized with seed 13270

という感じで安定のお手軽さに感動しました。

0 件のコメント: