2008-11-24 11 views
3

J'essaie de tester une méthode que j'ai dans mon application, mais je ne sais pas comment tester unitairement une méthode qui est protégée contre la falsification, jetez un oeil à ceci:Test des méthodes du contrôleur protégées contre la falsification dans Rails

def index 
    @alumnos = Alumno.paginate :per_page => 20, 
     :page => params[:page], :order => :nombre 

    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @alumnos } 
    end 
    end 

Dans le index.html.erb j'ai cette ligne:

<%= javascript_tag "window._token = '#{form_authenticity_token}'" %> 

Alors, lorsque je tente de le tester avec un test fonctionnel, il semble que la session n'a pas le secret travail qui va faire échouer le test, est-ce que quelqu'un a l'expérience de tester ces méthodes?

Répondre

1

Voici une solution (ou une solution de contournement): dans vos contrôleurs/application.rb

if RAILS_ENV =='test' 
    protect_from_forgery :secret => 'write ur secret in config/environment.rb' 

    else 

protect\_from_forgery 

    end