JSON を提供する Rails アプリがあり、http 経由で JSON を要求して処理するコードをテストしたいと考えています。http 要求応答をスタブせずにこのコードをテストする最良の方法は何ですか?
Railsアプリを提供するためにwebrickを起動することを考えていますが、技術的にそうすることができません。コード例へのポインタは大歓迎です。
# lib/bam.rb
require 'open-uri'
class Bam
def bam host='localhost'
hash = JSON.parse( open("http://#{host}/bam.json) )
# process hash
end
end
# spec/bam_spec.rb
RSpec.describe 'Bam' do
before(:all) do
# fire up webrick
end
after(:all) do
# shutdown webrick
end
it 'bam' do
hash = Bam.new.bam
hash.should eq('bam' => 'bam')
end
end