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