Comment tester la méthode ApplicationController définie également comme une méthode d’assistance?

Dans mon ApplicationController, j’ai une méthode définie comme méthode d’assistance:

helper_method :some_method_here

  • Comment tester ApplicationController dans RSpec?
  • Comment inclure / appeler cette méthode d’assistance lors du test de mes vues / helpers?

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.