我正在研究一个跨越多个控制器的现有sinatra应用程序。这些目前在config.ru文件中路由,如下所示:
require 'bundler'
Bundler.require(:default)
=begin
# The gem file includes these:
gem 'rack' , '1.5.2', :groups => [:default, :test]
gem 'rack-accept' , '0.4.5'
gem 'rack-mount' , '0.8.3'
gem 'rack-protection' , '1.5.1'
gem 'rack-test' , '0.6.2', :groups => [:test]
=end
use Rack::ContentType
maps = {
'/' => RootController,
'/users' => UsersController,
'/animals' => AnimalsController,
}
maps.each do |path, controller|
map(path){ run controller}
end
此文件通过config.ru启动(在Thin下)。但是测试文件不能在rackup(或Thin)下运行。 如何在rspec下加载控制器?
问题在于,当我在测试中输入'get“/ PATH”'或'post'时,Ruby会抱怨 参数不匹配(2表示0)。如果'get'没有参数,Ruby会给出不同的参数 不匹配(0表示1)。它们都有点错误 - 获取路径,可选哈希和可选块。 所以事情显然没有正确连线。
有些代码在这里:
config.ru:http://pastie.org/8673836 spec {helper.rb http://pastie.org/8673835 http://pastie.org/8673793上的错误讯息 http://pastie.org/8673785
处的简单控制器馅饼的名称略有不同,但要点是相同的。 如果没有环境,如何连接控制器 config.ru给你?
感谢您的帮助。