2009-11-04 5 views
0

J'ai une méthode ApplicationHelperLes méthodes d'essai ApplicationHelper qui comptent sur le chemin du régulateur de courant

def javascript_auto_link_tags 
    js_path = "#{RAILS_ROOT}/public/javascripts" 
    js = "#{controller.controller_path}.js" 
    javascript_include_tag(js) if FileTest.exist?("#{js_path}/#{js}") 
end 

Cela devrait trouver un fichier javascript basé sur le nom actuel du fichier du contrôleur et le chemin afin contrôleurs/admin/blah_controller.rb serait générez "/javascripts/admin/blah.js" et incluez-le s'il existe.

En RSpec je ne suis pas sûr de la meilleure façon de tester cela, car je ne sais pas comment le contrôleur est traité application_helper_spec.rb.

Mon test actuel est:

it "should load controller specific js" do 
    FileTest.should_receive(:exist?).and_return(true) 
    helper.javascript_auto_link_tags.should include("/javascripts/spec/rails/example/helper_example_group.js") 
end 

Je suis essentiellement tiré le résultat en vérifiant nulle, mais je ne sais pas si compter sur la façon dont RSpec traite le controller_path (doit être «/spec/rails/exemple/helper_example_group_controller ").

'ApplicationHelper javascript pour auto balises lien doit charger le contrôleur spécifique css' ECHEC nul prévu, a obtenu "" ./spec/helpers/application_helper_spec.rb:34:

est-il une meilleure façon de définir explicitement le nom du contrôleur et le chemin d'accès?

Répondre

2
controller.stub!(:controller_path).and_return("foo")