ともあれインストール。
Gemfile
ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] = 'YES'
gem "rspec", "~> 2.14.1"
gem "simplecov", "~> 0.8.0"
$ bundle install --path vendor/bundle
RSpecの初期化をする。
$ bundle exec rspec --init
create spec/spec_helper.rb
create .rspec
Bundlerでインストールしたディレクトリをフィルタリングして対象外にする。
spec_helper.rb
require 'simplecov'
SimpleCov.start do
add_filter "/vendor/"
end
RSpec.configure do |config|
config.treat_symbols_as_metadata_keys_with_true_values = true
config.run_all_when_everything_filtered = true
config.filter_run :focus
config.order = 'random'
end
テストを書く。
spec/calc_spec.rb
require 'spec_helper'
require 'car'
describe Car do
it "car named ferrari" do
car = Car.new
expect(car.name).to eq "ferrari"
end
it "car price 200" do
car = Car.new
expect(car.price).to eq 200
end
end
実装する。
lib/car.rb
class Car
attr_accessor :name, :price
def initialize(name="ferrari")
@name = name
@price = 200
end
end
テストを実行をする。
$ bundle exec rspec
..
Finished in 0.03427 seconds
2 examples, 0 failures
Randomized with seed 36271
Coverage report generated for RSpec to /vagrant/simplecov/coverage. 5 / 5 LOC (100.0%) covered.
WEBrickを起動する。
webrick.rb
require 'webrick'
params = {
:DocumentRoot => './coverage',
:BindAddress => '0.0.0.0',
:Port => 8080
}
srv = WEBrick::HTTPServer.new(params)
trap(:INT){ srv.shutdown }
srv.start
$ ruby webrick.rb
結果を表示する。