Dans mon ApplicationController, j’ai une méthode définie comme méthode d’assistance:
helper_method :some_method_here
J’utilise Rails3 avec RSpec2
Vous pouvez utiliser un contrôleur anonyme pour tester votre ApplicationController, comme décrit dans la documentation RSpec. Il y a aussi une section sur le test des helpers .
Vous pouvez invoquer vos méthodes d’assistance sur subject
ou @controller
dans la spécification.
Je cherchais une solution à ce problème et le contrôleur anonyme n’était pas ce que je cherchais. Disons que vous avez un contrôleur vivant à app/controllers/application_controller.rb
avec une méthode simple qui n’est pas liée à un chemin REST:
class ApplicationController < ActionController:Base def your_helper_method return 'a_helpful_string' end end
Ensuite, vous pouvez écrire votre test dans spec/controllers/application_controller_spec.rb
comme suit:
require 'spec_helper' describe ApplicationController do describe "#your_helper_method" do it "returns a helpful ssortingng" do expect(subject.your_helper_method).to eq("a_helpful_ssortingng") end end end
Bien que @controller
et subject
puissent être utilisés de manière interchangeable ici, je choisirais le subject
de la manière idiomatique RSpec pour le moment.