我正在研究一个Rails应用,它具有JSON格式的REST API和版本(根据这个优秀的Ryan的演员:http://railscasts.com/episodes/350-rest-api-versioning)。Rspec:在路由规范中添加一些头部请求
例如,有一个规范/请求规格:
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']
和@request.headers['Accept']
,其中request
是不确定的,@request
为零);我真的不知道该怎么做。
我在Ruby 1.9.3,Rails 3.2.6和rspec-rails 2.11.0。谢谢。
你是如何获得“无法修改冻结散列”错误的? – 2017-07-11 09:12:47
我可能正在使用旧版本的rspec或ruby,其中哈希没有被冻结。 – 2017-07-14 12:06:43