加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何使用RSpec在gem中测试Sinatra应用程序?

发布时间:2020-12-17 02:36:30 所属栏目:百科 来源:网络整理
导读:我正在编写一个gem,其中包含一个开发人员可以扩展的Sinatra应用程序.例如: # gem code:require 'sinatra'module Mygem class Application Sinatra::Base get 'auth/login' {} get 'auth/logout {} endend# developer code:require 'mygem'class DeveloperAp
我正在编写一个gem,其中包含一个开发人员可以扩展的Sinatra应用程序.例如:

# gem code:
require 'sinatra'
module Mygem
  class Application < Sinatra::Base
    get 'auth/login' {}
    get 'auth/logout {}
  end
end

# developer code:
require 'mygem'
class DeveloperApp < Mygem::Application
  # ..
end

我也开始使用RSpec了.我应该如何配置RSpec来测试此功能?

解决方法

上面的参考资料都是信息性和有用的,但主要是特定于轨道.我发现很难找到一个简单的配方来进行模块化Sinatra应用程序的基本测试,所以我希望这会为其他人回答这个问题.这是一个完全无骨,尽可能小的测试.这可能不是唯一的方法,但它适用于模块化应用程序:

require 'sinatra'
class Foo < Sinatra::Base
   get '/' do
    "Hello"
  end
end

require 'rack/test'

describe Foo do

  include Rack::Test::Methods

  def app
    Foo.new
  end

  it "should be testable" do
    get '/'
    last_response.should be_ok
  end

end

请注意,启动测试时不需要运行服务器(我看到的一些教程暗示你这样做) – 它不是集成测试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读