如何从Padrino控制台测试Padrino控制器



我知道在Rails中我可以做一些类似的事情

app.get 'url'
app.response

但这在Padrino中不起作用,任何常规的controller调用也不起作用。因为Padrino使用的控制器方法与Rails不同。

我想做的是从Ruby Padrino MRI控制台测试我的控制器方法。例如,我想存储当前的对象,调用相同的方法100次,然后比较遗留的对象。我正试图找出内存泄漏的地方。

因此,能够从Padrino console调用该方法将是一件很棒的事情。

我在官方文件或其他地方找不到告诉我如何做的东西。

Padrino::应用程序中的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

最新更新