使用RSpec测试机架中间件以查看"服务"中间件加载正确

时间:2015-04-02 17:56:20

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

我创建了一个stock rails(4.2.1)应用程序,当我启动WEBrick时,我能够获得欢迎页面。但是,我在rails应用程序的Gemfile中包含了一个gem helios。然后我阅读了helios README / documentation上的说明,helios框架可以作为中间件加载到rails应用程序中。所以我修改了 application.rb

#application.rb
require File.expand_path('../boot', __FILE__)

require 'rails/all'

Bundler.require(*Rails.groups)

module HeliosTest
  class Application < Rails::Application    
    # Do not swallow errors in after_commit/after_rollback callbacks.
    config.active_record.raise_in_transactional_callbacks = true


    config.middleware.use Helios::Application do
        service :data, model: '/opt/rails/Accounts.xcdatamodeld/Accounts 3.xcdatamodel/contents'
    end
  end 
end

重新启动,WEBrick和rails应用程序仍然启动并加载了欢迎页面。但是,当我查看rails应用程序的架构时,我注意到它没有更改,因为我在application.rb中指定了datamodel。我执行了rake db:migrate,但也没有改变架构。有人建议我测试我在rails应用程序中加载的中间件,所以我将RSpec测试框架包含在rails应用程序中,但我不确定如何在RSpec中编写一个测试{{1}的测试在application.rb中行,因为大多数有关测试中间件的stackoverflow问题都与测试http请求有关。

注意:使用名称service创建了rails应用。

1 个答案:

答案 0 :(得分:0)

中间件不会改变您的架构或添加到您的迁移中。如果您使用RTFM,您将看到默认设置是使用helios命令行界面创建新应用程序。

如果您想将helios用作中间件,那么预计您已经启动并运行了helios应用程序,并将其集成到另一个rails应用程序中。