Savon использует HTTPI для выполнения запросов SOAP.HTTPI - это общий интерфейс поверх различных клиентов Ruby HTTP.Вероятно, вы могли бы смоделировать / заглушить HTTP-запрос, выполненный Savon через:
HTTPI.expects(:post).with do |http|
SchemaValidation.validate(:get_user, http.body)
end
Обратите внимание, что я использовал Mocha для насмешки SOAP-запроса, получения тела HTTP и проверки его по некоторымметод проверки (псевдокод).
В настоящее время Savon не поддерживает создание запросов без их выполнения.Поэтому единственный способ проверить запрос - это перехватить его.
Если вам потребуется Savon для поддержки этой функции, пожалуйста, дайте мне знать и откройте заявку на GitHub .
РЕДАКТИРОВАТЬ: Есть также savon_spec , который является небольшим помощником для базового тестирования на основе приборов с Savon.