Ruby on rails 当测试子类时,Sintara rspec测试得到404
我正在测试sinatra非常基本的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'
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时如何?您是否也可以发布该请求?请参见上传的图片。