Un joyau qui vous permet de définir une maquette pour les réponses d'API lors du test de la capacité d'accéder à des API externes.
group :test do
gem 'webmock'
end
$ bundle install --path vendor/bundle
model/smaple.rb
require 'net/https'
require 'uri'
class Sample
include ActiveModel::Model
def get_request(api_url, params)
uri = URI(api_url)
uri.query = params
request(uri)
end
end
L'exécution de la méthode get_request décrite ci-dessus renvoie le contenu du stub défini dans WebMock.
require 'rails_helper'
require 'webmock/rspec'
RSpec.describe Abyss, type: :model do
describe 'facet', type: :facet do
before do
WebMock.enable!
WebMock.stub_request(:any, "www.example.com").to_return(
body: "This is a mock",
status: 200,
headers: { 'Content-Length' => 7 }
)
end
subject { Sample.new }
it 'debug' do
res = subject.send(:get_request, 'http://www.example.com', '')
puts res.body # This is a mock
end
end
end
Recommended Posts