Dans mon ApplicationController, j'ai une méthode définie comme une 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 test des aides .
Vous pouvez appeler 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 en spec/controllers/application_controller_spec.rb
comme suit:
require 'spec_helper'
describe ApplicationController do
describe "#your_helper_method" do
it "returns a helpful string" do
expect(subject.your_helper_method).to eq("a_helpful_string")
end
end
end
Tandis que @controller
et subject
peuvent être utilisés interchangeables ici, je choisirais subject
comme son idiomatique RSpec pour l'instant.