У меня есть этот код в классе шлюза, который делает запросы к внутреннему API компании. Как мне провести модульное тестирование?
class XGateway < BaseGateway
self.target_url = ENV["X_URL"]
def activate(serial_number:, comment: nil)
expecting 204 do
connection.put do |req|
req.url "/api/v1/hw/#{serial_number}/activate"
req.params = { comment: comment }
end
end
end
def deactivate(serial_number:, comment: nil)
expecting 204 do
connection.put do |req|
req.url "/api/v1/hw/#{serial_number}/deactivate"
req.params = { comment: comment }
end
end
end
end
connection
- это объект запроса Фарадея, а expecting
- это метод, позволяющий методу узнать, какой статус он ожидает для действительных ответов. Оба они определены в BaseGateway, от которого наследуется XGateway.
Что мне здесь нужно протестировать (в рамках модульного теста?)
Насколько я понимаю, для каждого метода:
- Убедитесь, что HTTP-запрос отправляется с правильными параметрами.
- Проверить правильность поведения при выполнении ожидания (ответ имеет код состояния 204)
- Проверьте правильность поведения, когда ожидание не выполнено (код состояния ответа отличается от 204)
Но как я могу проверить, что HTTP-запрос был отправлен?