Как я могу издеваться над AWS SDK (v2) с помощью rspec?

У меня есть класс, который читает / обрабатывает сообщения из очереди SQS, используядрагоценный камень aws-sdk-rails (который является оберткой наaws-sdk-ruby v2). Как мне высмеивать вызовы AWS, чтобы я мог проверить свой код, не обращаясь к внешним службам?

communicator.rb:

class Communicator
  def consume_messages
    sqs_client = Aws::SQS::Client.new
    # consume messages until the queue is empty
    loop do
      r = sqs_client.receive_message({
                                              queue_url: "https://sqs.region.amazonaws.com/xxxxxxxxxxxx/foo",
                                              visibility_timeout: 1,
                                              max_number_of_messages: 1
                                     })
      break if (response.message.length == 0)
      # process r.messages.first.body
      r = sqs_client.delete_message({
                                      queue_url: "https://sqs.region.amazonaws.com/xxxxxxxxxxxx/foo",
                                      receipt_handle: r.messages.first.receipt_handle
                                    })
    end
  end
end

Ответы на вопрос(2)

Ваш ответ на вопрос