Integrating VCR and RSpec

This commit is contained in:
Gregory Eremin
2011-10-19 17:49:54 +04:00
parent 008529ded5
commit 3818c6008f
7 changed files with 101 additions and 51 deletions
+44
View File
@@ -0,0 +1,44 @@
require 'spec_helper'
describe "artist" do
it "return valid instance", :vcr do
artist = MusicBrainz::Artist.find('69b39eab-6577-46a4-a9f5-817839092033')
artist.should be_a_kind_of(MusicBrainz::Artist)
end
it "search by name", :vcr do
matches = MusicBrainz::Artist.search('Kasabian')
matches.should have_at_least(1).item
matches.first[:name].should eql('Kasabian')
end
#
# should "get correct result by name" do
# @artist = MusicBrainz::Artist.find_by_name('Kasabian')
# assert_equal("69b39eab-6577-46a4-a9f5-817839092033", @artist.id)
# end
#
# setup do
# @artist = MusicBrainz::Artist.find('69b39eab-6577-46a4-a9f5-817839092033')
# end
#
# should "return valid instance" do
# assert_instance_of(MusicBrainz::Artist, @artist)
# end
#
# should "contain correct data" do
# assert_equal("69b39eab-6577-46a4-a9f5-817839092033", @artist.id)
# assert_equal("Group", @artist.type)
# assert_equal("Kasabian", @artist.name)
# assert_equal("GB", @artist.country)
# assert_equal("1999", @artist.date_begin)
# end
#
# should "load release groups" do
# release_groups = @artist.release_groups
# assert_operator(16, :<=, release_groups.length)
# assert_equal('533cbc5f-ec7e-32ab-95f3-8d1f804a5176', release_groups.first.id)
# assert_equal('Single', release_groups.first.type)
# assert_equal('Club Foot', release_groups.first.title)
# assert_equal(Time.utc(2004, 5, 10), release_groups.first.first_release_date)
# end
end
+19
View File
@@ -0,0 +1,19 @@
require 'rubygems'
require 'bundler'
begin
Bundler.setup(:default, :development)
rescue Bundler::BundlerError => e
$stderr.puts e.message
$stderr.puts "Run `bundle install` to install missing gems"
exit e.status_code
end
require "vcr"
require "musicbrainz"
# HTTPI.log = false
Dir[File.dirname(__FILE__)+"/../lib/*.rb"].each{ |f| require f }
Dir[File.dirname(__FILE__)+"/../spec/support/*.rb"].each{ |f| require f }
RSpec.configure do |config|
config.mock_with :rspec
end
+13
View File
@@ -0,0 +1,13 @@
VCR.config do |c|
c.cassette_library_dir = File.join(File.dirname(__FILE__), '..', '..', 'tmp', 'vcr')
c.stub_with :webmock
c.default_cassette_options = { :record => :new_episodes }
end
RSpec.configure do |c|
c.treat_symbols_as_metadata_keys_with_true_values = true
c.around(:each, :vcr) do |example|
name = example.metadata[:full_description].gsub(/\s/, '_')
VCR.use_cassette(name) { example.call }
end
end