что проверить для класса клиента, который вызывает сторонний API в ruby? - PullRequest
0 голосов
/ 01 апреля 2020

как протестировать функции, которые делают http-вызов apis и получить json ответ. что нужно учитывать, чтобы проверить? , если вы не можете сделать фактический вызов внешнего API из метода тестирования.

class Client
  include HTTParty 
  base_uri "https://www.somesite.com"
  format :json

  def send
    begin 
      response = HTTParty.get(url)
      if response.successful?
        response 
      else
        raise 'invalid response'
      end
    rescue HTTParty::Error => e 
      logger.warn(e.message)
    end
  end
end

1 Ответ

0 голосов
/ 01 апреля 2020

Хороший подход - использовать vcr gem.
Начиная с описания, этот гем позволяет записывать HTTP-взаимодействия вашего набора тестов и воспроизводить их во время будущих тестов для быстрых, детерминированных c, точных тестов.
С моей точки зрения, я бы записал 2 случая для вашего API, один для успешного ответа, а второй для неудачного ответа и проверил, что они покрыты вашим кодом, и вы не получите неожиданный результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...