मैं JSON प्रारूप और वर्सन (: http://railscasts.com/episodes/350-rest-api-versioning इस उत्कृष्ट रयान के कलाकारों के अनुसार) में एक REST API होने एक रेल आवेदन पर काम कर रहा हूँ अंदर कुछ हैडर अनुरोधों जोड़ें।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
नहीं के बराबर है) के रूप में अलग अलग तरीकों की कोशिश की, मैं वास्तव में नहीं देखता कि कैसे करना है।
मैं रूबी 1.9.3 पर हूँ, 3.2.6 और rspec-रेल 2.11.0 रेल। धन्यवाद।
आप "जमे हुए हैश को संशोधित नहीं कर सकते" त्रुटि कैसे प्राप्त कर चुके हैं? –
मैं शायद आरएसपीईसी या रूबी के पुराने संस्करण का उपयोग कर रहा था, जहां हैश जमे हुए नहीं थे। –