RSpec和Rack中间件:如何确保它在spec / dummy请求规范中处于活动状态

时间:2014-02-21 16:40:35

标签: ruby-on-rails ruby rspec middleware

我有一个Rack中间件,当在Gemfile中指定gem时,它会自动插入到应用程序中:

gem 'headhunter'

然后中间件就这样注册:

module Headhunter
  module Rails
    class Railtie < ::Rails::Railtie
      initializer "headhunter.hijack" do |app|
        head_hunter = Runner.new(::Rails.root)

        at_exit do
          head_hunter.report
          head_hunter.clean_up!
        end

        app.middleware.insert(0, Headhunter::Rack::CapturingMiddleware, head_hunter)
      end
    end
  end
end

现在我想确保中间件实际插入RSpec功能/请求规范中。

我在spec/dummy中有一个虚拟Rails应用程序,它执行以下操作:

require 'spec_helper'

feature 'Middleware integration' do
  scenario "Integrating the middleware into the Rack stack" do
    expect(Headhunter::Rack::CapturingMiddleware.any_instance).to receive(:call)
    visit posts_path
  end
end

可悲的是,这失败了,我不知道为什么。将binding.pry放在call内,我可以确定 被调用。

甚至可能有更好的方法来测试它?非常感谢您的帮助。

0 个答案:

没有答案