【问题标题】:How can I skip middleware in my Rspec request specs?如何在我的 Rspec 请求规范中跳过中间件?
【发布时间】:2012-03-15 15:44:20
【问题描述】:

我正在为 Rails 应用程序编写一些非常标准的 Rspec 请求规范。

describe "show" do
  it "should respond successfully when given an id that exists" do
    @badger = FactoryGirl.create(:badger)
    get "/badgers/#{@badger.id}"
    response.should be_ok
  end
end

但是,我们刚刚为单点登录系统添加了一个中间件组件,因此响应以重定向的形式返回 - “请登录”。

出于这些测试的目的,我怎样才能将中间件排除在链之外?(它在其他地方有自己的测试。)

【问题讨论】:

    标签: ruby ruby-on-rails-3 rspec middleware


    【解决方案1】:

    在你的config/environments/test.rb 中你可以删除这个中间件:

    config.middleware.delete YourMiddleware::Goes::Here
    

    【讨论】:

    • 我希望能够为单个规范执行此操作。例如,可以为 before 块中的单个规范完成此操作吗?
    • @shigazaru 据我所知没有。中间件堆栈在初始化后被冻结,因此无法修改。
    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 2018-10-16
    • 2023-03-13
    相关资源
    最近更新 更多