在Rails中防止伪造的测试控制器方法
问题描述:
我想测试我的应用程序中有一个方法,但是我不知道如何单元测试一种被伪造的方法,请看看这个:在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
在index.html.erb我有这样一行:
<%= javascript_tag "window._token = '#{form_authenticity_token}'" %>
所以,当我尝试用功能测试,以测试它,它似乎会话没有秘密工作会导致测试失败,有没有人有经验测试这种方法?
答
这里是一个解决方案(或替代方法): 在控制器/ application.rb中
if RAILS_ENV =='test'
protect_from_forgery :secret => 'write ur secret in config/environment.rb'
else
protect\_from_forgery
end