测试控制器方法,防止Rails中的伪造

时间:2008-11-24 16:59:59

标签: ruby-on-rails unit-testing authenticity-token

我正在尝试测试我在我的应用程序中使用的方法,但我不知道如何对一个受到伪造保护的方法进行单元测试,请看一下:

    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

在index.html.erb中我有这一行:

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

因此,当我尝试使用功能测试进行测试时,似乎会话没有秘密工作会导致测试失败,是否有人有测试此方法的经验?

1 个答案:

答案 0 :(得分:1)

这是一个解决方案(或解决方法): 在您的controllers / application.rb

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

  else

protect\_from_forgery

  end