比如说:身份验证是个全局过滤器,类似下面:
[code="java"]
class ApplicationController < ActionController::Base
before_filter :authorize, :except => :login
def authorize
...
redirect_to login_url
end
[/code]
这带来个问题,功能测试如果不先验证身份的话,就通通被挟持到login_url去了... 但是,每个测试前都加上登录代码实在是很恶心。
有什么好的解决方法么?请指教
BTW,我知道可以用类似下面的方法设置SESSION来通过验证。
[code="java"]
get :show, {}, {:user_id => users(:zooks).id}
post :create, {}, {:user_id => users(:zooks).id}
[/code]
但是这依然要每个请求都跟段相同的代码。
直接动手改ActiveSupport::TestCase在setup做些手脚似乎可以解决,但是这太粗暴了,不灵活。
到底如何是好那...
[b]问题补充:[/b]
谢谢回答,每个controller的测试都要改下派生类,还是稍微有点麻烦。
我很好奇大家都是怎么做的? 这应该是个很常见的问题罢...