Я рекомендую использовать FakeWeb .Я недавно использовал это в проекте, и это позволило мне зарегистрировать несколько внешних URL с предопределенным ответом.В вашей тестовой настройке вы можете сделать:
FakeWeb.register_uri(:get, %r|users.xml|, :body => File.read("spec/factories/xml/users.xml"))
Теперь, когда активный ресурс запрашивает anyhost.com/users.xml (в тестовой среде), вы вместо этого сразу же получаете содержимое файла, на который вы ссылались.Мне нравится этот подход, потому что, когда вы тестируете модель, вам не нужно тестировать и внешнюю службу.Я бы оставил этот уровень тестирования интеграционному тесту.
Это не повлияет на среды разработки или производства, поэтому вы можете использовать свой тупой внешний сервис как обычно.