2010-08-09 17 views
1

Pour être précis, j'essaye d'obtenir ActionController::Routing::Routes.recognize_path pour reconnaître une route qui n'est pas dans routes.rb, à des fins de test.Rails Faking a Route

Est-il possible de simuler ou ajouter dynamiquement un itinéraire? J'utilise Rspec avec Mocha.

Répondre

3

Je ne sais absolument pas si fonctionnera mais vous pouvez expérimenter quelque chose comme ceci:

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 
+0

Merci, 'ActionController :: Routing :: Routes.draw' est ce que je cherchais. – Karl

0

Le joyau fakeweb à http://github.com/chrisk/fakeweb pourrait répondre à vos besoins.

Comment enregistrer une réponse de chaîne de base (du README):

FakeWeb.register_uri(:get, "http://example.com/test1", :body => "Hello World!") 

Pour tester:

Net::HTTP.get(URI.parse("http://example.com/test1")) 

retours "Hello World!"

Net::HTTP.get(URI.parse("http://example.com/test2")) 

Dans ce cas, FakeWeb est contournée et la réponse d'une requête réelle est renvoyée