rails new appname -T ではじめる
TEST:Unit 関連が生成されなくなる
Gemfileに必要gemを追記
gem 'twitter-bootstrap-rails'
group :development, :test do
gem 'rspec-rails'
gem 'capybara'
gem "jasmine-rails"
gem "factory_girl_rails"
gem 'spork'
gem 'growl'
gem 'guard'
gem 'guard-bundler'
gem 'guard-rspec'
gem 'guard-spork'
gem 'rb-fsevent',require: false
gem 'simplecov'
gem 'simplecov-rcov'
end
$ bundle install
rpsecの準備
$ rails g rspec:install
create .rspec
create spec
create spec/spec_helper.rb
sporkの準備
$ spork --bootstrap
spec/spec_helper.rb を編集してもろもろ準備
関連内容
capybara,spork,simplecov
spec/spec_helper.rb
# step.1
# 約50行目の
# This file is copied to spec/ when you run 'rails generate rspec:install'
# より下のコード(sporkをインストールする前のspec_helper.rbのコード)をすべて
Spork.prefork do
# --ここ--
end
# に貼り付ける。
# step.2
# Spork.prefork do 内先頭付近に、factory_girlとcapybaraの設定追加。
# これでrails g の時にいろいろ勝手に作ってくれる
require 'rspec/rails'
require 'rspec/autorun'
require 'factory_girl_rails' # add
require 'capybara/rspec' # add
# step.3
# Spork.each_run do へFactoryGirl.reloadを追記して、factory_girl(テストデータ)関連のファイルが更新された際に読み込みようにする
Spork.each_run do
FactoryGirl.reload
end
# step.4
# カバレッジのための設定を追記
# Spork.prefork do の直下に追記
Spork.prefork do
unless ENV['DRB']
require 'simplecov'
end
# Spork.each_run do の直下に追記
Spork.each_run do
if ENV['DRB']
require 'simplecov'
end
aplicationのrootに.simplecovファイルを作成
SimpleCov.start 'rails' do
add_filter "/spec/"
end
.rspecファイルの編集
--color
--drb
--format documentation # rspecの出力をドキュメント形式にする。お好みで。
guardの設定
Guardfileの生成
$ bundle exec guard init spork
$ bundle exec guard init rspec
Guardfileを少々修正
# guard 'rspec', :version => 2 do を以下のように修正
guard 'rspec', :version => 2, cli: '--drb', all_after_pass: false, all_on_start: false do
起動実験
scaffoldでもして、自動でファイル生成されているかを確かめる
scaffold
$ rails g scaffold user name:string email:string
invoke active_record
create db/migrate/20120910022400_create_users.rb
create app/models/user.rb
# factory_girl関連の自動生成を確認↓
invoke rspec
create spec/models/user_spec.rb
invoke factory_girl
create spec/factories/users.rb
invoke resource_route
route resources :users
invoke scaffold_controller
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
invoke rspec
create spec/controllers/users_controller_spec.rb
create spec/views/users/edit.html.erb_spec.rb
create spec/views/users/index.html.erb_spec.rb
create spec/views/users/new.html.erb_spec.rb
create spec/views/users/show.html.erb_spec.rb
create spec/routing/users_routing_spec.rb
# capybara関連の自動生成を確認↓
invoke rspec
create spec/requests/users_spec.rb
invoke helper
create app/helpers/users_helper.rb
invoke rspec
create spec/helpers/users_helper_spec.rb
invoke assets
invoke coffee
create app/assets/javascripts/users.js.coffee
invoke scss
create app/assets/stylesheets/users.css.scss
invoke scss
create app/assets/stylesheets/scaffolds.css.scss
マイグレーションの実行
$ rake db:create
$ rake db:migrate RAILS_ENV=test
guardの実行
bundle exec guard
適当にファイルを編集してみて、自動的に更新されテストが実行されたら成功
カバレッジの結果は/coverage/index.htmlとして出力されているはず。