我知道在Rails中我可以做一些类似的事情
app.get 'url'
app.response
但这在Padrino中不起作用,任何常规的controller
调用也不起作用。因为Padrino使用的控制器方法与Rails不同。
我想做的是从Ruby Padrino MRI控制台测试我的控制器方法。例如,我想存储当前的对象,调用相同的方法100次,然后比较遗留的对象。我正试图找出内存泄漏的地方。
因此,能够从Padrino console
调用该方法将是一件很棒的事情。
我在官方文件或其他地方找不到告诉我如何做的东西。
get
只是DSL的一部分,用于定义新路由,而不是检索其内容。您试图实现的通常是Rack::Test库的一部分。
查看Sinatra文档:
http://www.sinatrarb.com/testing.html
特别比较了关于Rack::Test with Mixin VS without Mixin的章节。这将使您了解获取get的来源。
在您的情况下,如果您想从控制台进行测试,那么它应该是这样的部分:
require 'rack/test'
browser = Rack::Test::Session.new(Rack::MockSession.new(Padrino::Application))
browser.get '/'
现在,在看到Padrino::Application
的地方,必须键入自己的应用程序主类,该类继承自该类,而不是抽象类本身
注意,结果将是一个Rack::MockSession对象,所以如果你只想看到html do:
browser.get('/').body