Могу ли я изменить текст страницы Capybara до того, как браузер получит его?

#ruby-on-rails #capybara

#ruby-on-rails #capybara

Вопрос:

У меня есть приложение Rails с Capybara для спецификаций функций. У меня есть некоторый код, который приводит к такому URL /Users/brandoncc/dev/app/public/uploads/... . Это особое обстоятельство в тестовой среде. Мне нужно изменить текст ответа, прежде чем браузер получит его. Возможно ли это? Мне нужно отрезать /Users/brandoncc/dev/app/public URL-адреса изображений из.

Ответ №1:

Здесь у вас есть несколько вариантов — вероятно, лучшие 3

  1. Программируемый прокси, такой как puffing-billy
  2. Напишите класс промежуточного программного обеспечения rack и укажите, чтобы использовать его в вашем config / environments / test.rb через config.middleware.use=
  3. Напишите приложение rack для упаковки тестируемого приложения, которое изменяет ответы перед их возвратом, и назначьте это Capybara.app

Любой из этих подходов должен делать то, что вы хотите, но, возможно, вам лучше просто выяснить, почему код вставляет полные пути в URL-адреса, и исправить это, чтобы вместо этого использовать что-то вроде помощников по ресурсам rails.

Комментарии:

1. Спасибо, Томас. Я действительно знаю, почему это происходит, это связано с carrierwave, а не с обработкой файлов. В итоге я заключил строки capybara, которые вызывают 404, в метод, называемый #ignore_missing_images ‘ блоком, который игнорирует 404 для файлов .jpg. Я согласен, что ваши варианты, вероятно, являются и моими другими вариантами. Еще раз спасибо!