Рельсы поддаются маршруту
-
27-09-2019 - |
Вопрос
Быть специфическим, я пытаюсь получить ActionController::Routing::Routes.recognize_path
распознать маршрут, который не в routes.rb
, для целей тестирования.
Можно ли как-то издеваться или динамически добавить маршрут? Я использую Rspec с Mocha.
Решение
Я имею абсолютно не знаю, будет ли работать, но вы могли бы поэкспериментировать с чем-то вроде этого:
class ApplicationController < ActionController::Base
rescue_from ActionView::MissingTemplate do |exception|
# use exception.path to extract the path information
ActionController::Routing::Routes.draw do |map|
# Add your dynamic route using path here and then do a redirect to it
end
end
end
Другие советы
То fakeweb
драгоценный камень http://github.com/chrisk/fakeweb. может соответствовать вашим потребностям.
Как зарегистрировать базовый строковый ответ (из README):
FakeWeb.register_uri(:get, "http://example.com/test1", :body => "Hello World!")
Тестировать:
Net::HTTP.get(URI.parse("http://example.com/test1"))
возвращается "Hello World!"
Net::HTTP.get(URI.parse("http://example.com/test2"))
В этом случае fakeweb обойдется, а ответа от реального запроса возвращается
Не связан с StackOverflow