【问题标题】:rspec-sinatra, how to call a helper method?rspec-sinatra,如何调用辅助方法?
【发布时间】:2013-10-23 03:42:41
【问题描述】:

我有一个 Sinatra 应用程序。

它包括以下内容:

helpers do
  def helper1
    ...code...
  end
  def helper2
    ...code...
  end
  ...
end

如何测试这些辅助方法?

目前我的 rspec 有:

ENV['RACK_ENV'] = 'test'

require_relative '../app'  # <-- your sinatra app

describe 'Basic test' do

  before :each do
    @xml_info = File.read('examples/request_litle_auth.xml')
  end 
  it "basic test" do
    'a'.should eq 'a' 
  end 
  it "can call a helper method" do
    to_dollars(30)
  end 
end

但这给出了:

undefined method `to_dollars' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000002460e18>

【问题讨论】:

    标签: rspec sinatra


    【解决方案1】:

    经典的 sinatra 测试适用于 Rack::Test。这是一个伪造的浏览器会话,它对您的 sinatra 应用程序执行请求,以便您可以断言响应代码、内容等。

    如果你想测试一个自定义的帮助方法,你需要类似这样的东西:https://github.com/padrino/padrino-framework/issues/930

    TL;DR

    创建一个模块,将其包含在您的助手调用中,以您喜欢的任何方式测试该模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-19
      • 2014-02-10
      • 2011-03-27
      • 2019-06-05
      相关资源
      最近更新 更多