如何从 IRB 控制台调用 Sinatra 路由

How to call a Sinatra route from IRB console

我通过在 bash 中输入 irb 然后在控制台中使用

将我的应用加载到 IRB 控制台
require 'myapp.rb'

一切顺利,现在我想呼叫我的路线之一。

get '/stuff' do
  '<HTML><BODY><CENTER>App is up and running! '\
  'Less logging...</CENTER></BODY></HTML>'
end

如何使用 IRB 控制台测试此路由?

您要测试吗?如果是这样,你应该尝试一个测试框架。

但在 irb 中可以这样做: Link

然后转到 "Using Rack::Test without the Mixin"

> require_relative 'myapp'
> require 'rack/test'
> browser = Rack::Test::Session.new(Rack::MockSession.new(Sinatra::Application))
> browser.get '/stuff'
> browser.last_response.body

我发现了晚礼服 gem。它允许从 IRB 控制台中调用 get 和 post 路由。

试试这个:

class MySinatraApp < Sinatra::Base
    get "/test_endpoint/"
        "Hello world"
    end
    # ...
end

require "rack/test"
def app
  MySinatraApp
end

Rack::Test::Methods.get("/test_endpoint/")