【问题标题】:Testing Rack Middleware with RSpec to see if a "service" of the middleware loaded properly使用 RSpec 测试机架中间件以查看中间件的“服务”是否正确加载
【发布时间】:2015-04-02 17:56:20
【问题描述】:

我创建了一个 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 中指定了数据模型。我执行了rake db:migrate,但这也没有改变架构。有人建议我测试我在 rails 应用程序中加载的中间件,所以我在 rails 应用程序中包含了 RSpec 测试框架,但我不确定如何在 RSpec 中编写测试 service 行的测试在 application.rb 中,因为大多数有关测试中间件的 stackoverflow 问题都与测试 http 请求有关。

注意: Rails 应用程序是用名称 helios-test 创建的。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 2020-10-24
    • 2013-07-04
    • 2011-01-14
    • 1970-01-01
    • 2014-11-14
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    相关资源
    最近更新 更多