У меня есть модель, которая выглядит так:
class Gist
def self.create(options)
post_response = Faraday.post do |request|
request.url 'https://api.github.com/gists'
request.headers['Authorization'] = "Basic " + Base64.encode64("#{GITHUB_USERNAME}:#{GITHUB_PASSWORD}")
request.body = options.to_json
end
end
end
и тест, который выглядит так:
require 'spec_helper'
describe Gist do
context '.create' do
it 'POSTs a new Gist to the user\'s account' do
Faraday.should_receive(:post)
Gist.create({:public => 'true',
:description => 'a test gist',
'files' => {'test_file.rb' => 'puts "hello world!"'}})
end
end
end
Однако этот тест не очень меня удовлетворяет, так как все, что я тестирую, это то, что я делаю POST с Фарадеем, но я не могу на самом деле проверить URL, заголовки или тело, поскольку они передаются с помощью Блок. Я пытался использовать тестовый адаптер Фарадея, но я не вижу никакого способа проверить с его помощью URL, заголовки или тело.
Есть ли лучший способ написать заглушку Rspec? Или я могу использовать тестовый адаптер Фарадея каким-то образом, который я не смог понять?
Спасибо!