iteye_15001 2009-02-02 20:54
浏览 136
已采纳

功能测试被全局过滤器“挟持”?

比如说:身份验证是个全局过滤器,类似下面:
[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的测试都要改下派生类,还是稍微有点麻烦。

我很好奇大家都是怎么做的? 这应该是个很常见的问题罢...

  • 写回答

1条回答 默认 最新

  • iteye_8302 2009-02-05 11:24
    关注

    写一个自己的基础测试类,在setup里面先将一个普通用户登录,其他类都继承它即可
    [code="ruby"]
    class MyBaseTest < Test::Unit::TestCase
    def setup
    login_as "quake"
    end
    end

    class PersonTest < MyBaseTest
    end
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?