我正在编写一个 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 来测试此功能?
最佳答案
上面的引用资料都是有用的,但主要是特定于 rails 的。我发现很难找到一个简单的方法来对模块化 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
请注意,启动测试时不需要让服务器运行(我看到的一些教程暗示你这样做)——这不是集成测试。
关于ruby - 如何使用 RSpec 在 gem 中测试 Sinatra 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217700/