:vcr 태그 사용

/spec/support/vcr.rb

VCR.configure do |config|
  config.cassette_library_dir = "spec/vcr"
  config.hook_into :webmock
  config.ignore_localhost = true

  # :vcr tag 사용
  config.configure_rspec_metadata!
end


:vcr 태그에 option 전달

context 'with valid attributes', :vcr do

context 'with valid attributes', vcr: {record: :new_episodes} do

VCR::Errors::UnhandledHTTPRequestError

  • 카세트에 저장된 URL과 test에서 요청하는 URL이 다를 때 발생
  • Factory_girl에서 sequence를 이용해 URL을 만들 경우, 이후에 테스트 수트가 추가되면서 URL이 변경되는 경우 발생
  • create() method에 URL관련된 attribute를 parameter로 넘겨줘서 고정시켜 해결 vcr-issue

vcr reference

https://semaphoreci.com/community/tutorials/stubbing-external-services-in-rails

http://marnen.github.io/webmock-presentation/webmock.html

http://railscasts.com/episodes/291-testing-with-vcr