Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 带有多个控制器的Sinatra应用程序:我如何告诉rspec路线是什么?_Ruby_Rspec_Sinatra - Fatal编程技术网

Ruby 带有多个控制器的Sinatra应用程序:我如何告诉rspec路线是什么?

Ruby 带有多个控制器的Sinatra应用程序:我如何告诉rspec路线是什么?,ruby,rspec,sinatra,Ruby,Rspec,Sinatra,我正在开发一个现有的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

我正在开发一个现有的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)。它们都有点错误——get采用路径、可选哈希和可选块。 所以有些东西显然没有正确连接

下面是一些代码:

config.ru: spec_helper.rb位于 错误消息位于 简单控制器

这两本书的名字略有不同,但大意是一样的。 没有环境时,如何连接控制器 config.ru给了你什么


谢谢您的帮助。

问题出在代码库的某个地方,但rack无法轻松确定问题所在

我在这个网站上注册了一个bug

请把你的pastie.org的主要部分包括在内好吗?一位队友发现了问题所在——它在我们正在使用的第三方库中。我正在做其他事情,发布一个清理过的主例程及其依赖项会有太多的麻烦。不过谢谢你的邀请。我把窃听器关掉了。问题出在代码使用的库中。