Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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 on rails 当测试子类时,Sintara rspec测试得到404_Ruby On Rails_Rspec_Sinatra - Fatal编程技术网

Ruby on rails 当测试子类时,Sintara rspec测试得到404

Ruby on rails 当测试子类时,Sintara rspec测试得到404,ruby-on-rails,rspec,sinatra,Ruby On Rails,Rspec,Sinatra,我正在测试sinatra非常基本的GET,但是我在rspec中得到了404错误,使用brower它工作正常 config.ru map('/books'){run BooksController} #another application just for books map('/'){run Api} Api.rb class Api < Sinatra::Base end; class BooksController < Api namespace '/api/v1'

我正在测试sinatra非常基本的
GET
,但是我在rspec中得到了404错误,使用brower它工作正常

config.ru

map('/books'){run BooksController} #another application just for books
map('/'){run Api}
Api.rb

class Api < Sinatra::Base end;
class BooksController < Api
   namespace '/api/v1' do
     get '/books' do
       "books"
     end
   end
end
RSpec.describe BooksController do
describe "Get Index" do
    it "/books" do
      get "/books/api/v1/books", {access_token:user1.access_token}
      expect(last_response.status).to eq 200
      expect(last_response.body).to eq "books"
    end
  end
end
错误

1) BooksController Get Index /books
     Failure/Error: expect(last_response.status).to eq 200

       expected: 200
            got: 404

       (compared using ==)
但在我的浏览器中运行良好

当通过浏览器访问时,
shotgun
(如rackup)输出:

127.0.0.1 - - [11/Jan/2016:14:48:05 +0800] "GET /books/api/v1/ HTTP/1.1" 200 6 0.0089
编辑:
test
环境的浏览器中也可以正常工作。详情如下:

EIDT:当我发出
最后一个请求时。url
我得到:

 "http://example.org/books/api/v1/books"
我原以为是域名,但当我测试
Api
的GET时,我得到了与
相同的主机urlhttp://example.org/api/v1.2/events
,但测试可以通过


任何帮助,谢谢

您必须在规范中定义一个新控制器,如下所示:

def app
  BooksController.new
end

它是否出现在您的development server输出中,如果出现,请将其发布在此处。经过编辑,我可以从浏览器访问url。在测试中访问该url时如何?您是否也可以发布该请求?请参见上传的图片。