Я пытаюсь использовать VCR 2.0.0 за пределами Rails.Невозможно записать запросы Whois с видеомагнитофоном?
Видеомагнитофон, похоже, прекрасно создает каталог vcr_cassettes
, когда я запускаю спецификации. Тем не менее, тесты, похоже, по-прежнему попадают в сеть, и в каталоге кассет никогда нет никаких кассет yaml.
Любые идеи, что я делаю неправильно?
Вот пример меня работает спецификации в вопросе:
rm -r spec/fixtures/vcr_cassettes
rspec spec/lib/availability_checkers/net_checker_spec.rb
...*
Finished in 1.83 seconds
3 examples, 0 failures, 0 pending
ls spec/fixtures/vcr_cassettes
=> # created but empty
У меня есть spec/support/vcr_helper.rb
:
require "vcr"
VCR.configure do |c|
c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
c.hook_into :webmock
end
И у меня есть файл спецификаций под spec/lib/availability_checkers/net_checker_spec.rb
:
require "availability_checkers/net_checker'
require "support/vcr_helper"
describe NetChecker, "check" do
it "should return false if the domain is unavailable" do
VCR.use_cassette("unavailable_domain") do
NetChecker.check("apple.com").should be_false
end
end
end
И просто вы можете заинтересовать, вот метод, протестированный в:
require "whois"
class NetChecker
def check(host)
# this part hits the network
return Whois.available?(host)
rescue Whois::Error => e
return nil
end
end
Звуки о праве на меня. Благодарю. –
Возможно, вы просто можете просто вычислить простое ожидание от соискателя Whois NetChecker, чтобы изолировать тест от сети, например: «Whois.expects (: доступно?). С (« apple.com »). Возвращает (false)' – dbenhur
Да выглядит как я собираюсь это сделать. Просто мне нравится немного разобраться, когда я тестирую по краям моей системы. –