我正在开发一个 Rails 应用程序,它有一个 JSON 格式的 REST API 和版本(根据这个优秀的 Ryan 演员:http ://railscasts.com/episodes/350-rest-api-versioning )。
例如,有一个规范/请求规范:
require 'spec_helper'
describe "My Friends" do
describe "GET /my/friends.json" do
it "should get my_friends_path" do
get v1_my_friends_path, {}, {'HTTP_ACCEPT' => 'application/vnd.myapp+json; level=1'}
response.status.should be(401)
end
end
end
而且效果很好。但是(保持这个例子)我们如何编写路由规范?例如这个规范是不正确的:
require 'spec_helper'
describe "friends routing" do
it "routes to #index" do
get("/my/friends.json", nil, {'HTTP_ACCEPT' => 'application/vnd.myapp+json; level=1'}).
should route_to({ action: "index",
controller: "api/v1/private/my/friends",
format: "json" })
end
end
我尝试了不同的方法(例如request.headers['Accept']
and @request.headers['Accept']
, where request
is undefined and @request
is nil);我真的不知道该怎么做。
我正在使用 Ruby 1.9.3、Rails 3.2.6 和 rspec-rails 2.11.0。谢谢。