如何在Rspec请求规范中跳过中间件?

Nat*_*ong 3 ruby middleware rspec ruby-on-rails-3

我正在为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
Run Code Online (Sandbox Code Playgroud)

但是,我们刚刚为单点登录系统添加了一个中间件组件,因此响应作为重定向返回 - "请登录".

出于这些测试的目的,我如何将中间件从链中删除?(它在其他地方有自己的测试.)

Rya*_*igg 5

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

config.middleware.delete YourMiddleware::Goes::Here
Run Code Online (Sandbox Code Playgroud)

  • 我希望能够针对单个规格执行此操作。例如,可以对 before 块中的单个规范执行此操作吗? (2认同)