4. RSpec のインストール

RSpec のインストール

RSpec については 3 系列からだいぶ変わってしまったので、Everyday Rails - RSpecによるRailsテスト入門という電子書籍で学習した。

まず Gemfile に以下を追加する。本よりも新しいものがいくつかあったので、version だけは直しておいた。

group :development, :test do
  gem 'rspec-rails', '~> 3.1.0'
  gem 'factory_girl_rails', '~> 4.5.0'
end
  
group :test do
  gem 'faker', '~> 1.4.3'
  gem 'capybara', '~> 2.4.4'
  gem 'database_cleaner', '~> 1.3.0'
  gem 'launchy', '~> 2.4.3'
  gem 'selenium-webdriver', '~> 2.44.0'
end

ここまでで bundle install してみる(長くなるので Using は消してある)。

% bundle install
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Installing addressable 2.3.6
Installing mini_portile 0.6.1
Installing nokogiri 1.6.5
Installing xpath 2.0.0
Installing capybara 2.4.4
Installing ffi 1.9.6
Installing childprocess 0.5.5
Installing database_cleaner 1.3.0
Installing diff-lcs 1.2.5
Installing factory_girl 4.5.0
Installing factory_girl_rails 4.5.0
Installing faker 1.4.3
Installing launchy 2.4.3
Installing rspec-support 3.1.2
Installing rspec-core 3.1.7
Installing rspec-expectations 3.1.2
Installing rspec-mocks 3.1.3
Installing rspec-rails 3.1.0
Installing rubyzip 1.1.6
Installing websocket 1.2.1
Installing selenium-webdriver 2.44.0
Your bundle is complete!
It was installed into ./vendor/bundle

RSpec 環境の構築

次に、Rspec 環境を構築する。

% bin/rails generate rspec:install
      create  .rspec
      create  spec
      create  spec/spec_helper.rb
      create  spec/rails_helper.rb

前と違って、spec_helper.rb と rails_helper.rb に設定が別れている。rails に関することは rails_helper に書き、それ以外は spec_helper に書くとのこと。

しばらくはテストも少ないので、format を documentation にしておく。そのために .rspec に以下の行を追加する。

--format documentation

今回の Rspec では view と request のテストは行わない予定である。そのため、config/application.rb の Application クラスの中に以下のブロックを追加する。これで、generator を動かした時に余計なひな型が作成されなくなる。

    # generator の設定 (RSpec)
    config.generators do |g|
      g.test_framework :rspec,
        fixtures: true,
        view_specs: false,
        helper_specs: true,
        routing_specs: true,
        controller_specs: true,
        request_specs: false
      g.fixture_replacement :factory_girl, dir: 'spec/factories'
    end               

Rails 4.1 になり spring が標準になったので、rspec も spring に対応させる。Gemfile の development と test 部に spring-commands-rspec を追加しておく。

group :development, :test do
  (省略)
  gem 'spring-commands-rspec', '~> 1.0.4'
end

bundle install する(Using は省略)。

> bundle install
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Installing spring-commands-rspec 1.0.4
Your bundle is complete!
It was installed into ./vendor/bundle

rspec コマンドを binstub で作っておく。

% bundle exec spring binstub rspec
* bin/rspec: generated with spring

試しに bin/rspec を動かして動作を確認する。

% bin/rspec
No examples found.

Finished in 0.00029 seconds (files took 0.16344 seconds to load)
0 examples, 0 failures

何も作っていないので、テストが成功するのは当たり前。

今日はここまで。

written by iHatenaSync