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