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?