从Minitest Test_helper访问Sinatra设置



我正在尝试访问我的测试辅助器中Sinatra设置中定义的变量,没有运气。这是我的代码:

主应用:

require 'sinatra'
set :foo, 'bar'
# use settings.foo in the routes

tests/test_helper.rb

ENV['RACK_ENV'] = 'test'
require 'minitest/autorun'
require 'rack/test'
module Minitest
  class Spec
    include Rack::Test::Methods
    def app
      Sinatra::Application
    end
    before do
      # do something with settings.foo
    end
  end
end

我尝试过Sinatra::Application.settings.fooapp.settings.foo,但无效。

我还尝试添加下面的辅助方法:

lib/helpers/settings_helper.rb

module SettingsHelper
  def foo
    settings.foo
  end
end
helpers SettingsHelper

这在app内部起作用,但在test_helper内不起作用。我尝试在test_helper中需要settings_helper.rb。还添加了include。这些都没有用。

有人知道我在做什么错吗?

节日快乐

不确定这是否适用于经典样式应用程序。但是,使用模块化应用程序,您可以进行MyApp.set :foo, 'bar'。因此,您可以尝试Sinatra::Application.set :foo, 'bar'

希望这会有所帮助。

最新更新