从Minitest test_helper访问Sinatra设置

时间:2016-12-30 14:16:16

标签: ruby sinatra settings minitest helpers

我试图从我的测试帮助程序中访问Sinatra设置中定义的变量而没有运气。这是我的代码:

主要应用:

require 'sinatra'

set :foo, 'bar'

# use settings.foo in the routes

测试/ 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 /助手/ settings_helper.rb

module SettingsHelper
  def foo
    settings.foo
  end
end

helpers SettingsHelper

此内容适用于app,但在test_helper内部无效。我尝试在settings_helper.rb中要求test_helper。还添加了include。这些都不起作用。

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

节日快乐

1 个答案:

答案 0 :(得分:2)

不确定这是否适用于classic style应用。但是使用模块化应用程序,您可以执行MyApp.set :foo, 'bar'。所以你可以尝试Sinatra::Application.set :foo, 'bar'

希望这有帮助。