Вопрос

Быть специфическим, я пытаюсь получить 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 обойдется, а ответа от реального запроса возвращается

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top