【自宅サーバ Rails】RailsでRspecを使ってみる

  • このエントリーをはてなブックマークに追加

はじめに

Railsのテストはデフォルトでminitestを使用します。RailsからRspecを使ってテストを実行できるように環境構築しました。実際の現場では資料の多さなどからminitestよりもRspecが好んで使われているみたいです。自分のプロジェクトにもRspecをインストールしたいと思います。

準備

Gemfile

最新版rspecインストール

group :development, :test do
  gem 'rspec-rails'
end

インストール

# bundle install

rspecの初期化

1つ目

システムワイドのrailsコマンドではなくプロジェクトのrailsコマンド(プロジェクト/bin/rails)を見にいく

# rails generate rspec:install

2つ目

プロジェクトのrailsコマンドを指定する方法

# bin/rails generate rspec:install

Rspecの実行

コントローラを生成

rspec/以下に自動でテストの雛形が生成されている

# rails g controller staticpage home help
      create  app/controllers/staticpage_controller.rb
       route  get 'staticpage/help'
       route  get 'staticpage/home'
      invoke  erb
      create    app/views/staticpage
      create    app/views/staticpage/home.html.erb
      create    app/views/staticpage/help.html.erb
      invoke  rspec
      create    spec/controllers/staticpage_controller_spec.rb
      create    spec/views/staticpage
      create    spec/views/staticpage/home.html.erb_spec.rb
      create    spec/views/staticpage/help.html.erb_spec.rb
      invoke  helper
      create    app/helpers/staticpage_helper.rb
      invoke    rspec
      create      spec/helpers/staticpage_helper_spec.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/staticpage.coffee
      invoke    scss
      create      app/assets/stylesheets/staticpage.scss

テスト実行

あとはテストコードを書いて実行するだけ。

# bundle exec rspec spec/controllers/staticpage_controller_spec.rb

or

# bin/rspec spec/controllers/staticpage_controller_spec.rb

bin/rspecの方がspringという仕組みを使ってテストが早く実行される