Tôi đang làm việc trên ứng dụng Rails có API REST ở định dạng JSON và được phiên bản (theo diễn viên Ryan tuyệt vời này: http://railscasts.com/episodes/350-rest-api-versioning).Rspec: thêm một số yêu cầu tiêu đề bên trong thông số định tuyến
Ví dụ, có một spec/yêu cầu spec:
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
Và nó hoạt động tốt. Nhưng (giữ ví dụ này) làm thế nào chúng ta có thể viết spec định tuyến? Ví dụ spec này là không đúng:
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
tôi đã cố gắng nhiều cách khác nhau (chẳng hạn như request.headers['Accept']
và @request.headers['Accept']
, nơi request
là undefined và @request
là con số không); Tôi thực sự không thấy làm thế nào để làm.
Tôi đang sử dụng Ruby 1.9.3, Rails 3.2.6 và rspec-rails 2.11.0. Cảm ơn.
Làm thế nào bạn vượt qua được lỗi "không thể sửa đổi lỗi đóng băng"? –
Tôi có thể đang sử dụng phiên bản cũ hơn của rspec hoặc ruby, nơi băm không bị đóng băng. –