ruby on rails কিভাবে rspec অনুরোধ spec অনুরোধ হেডার সেট করতে?




ruby-on-rails json (8)

আমি এখানে যোগ করছি, যেমনটি আমি Rails 5.1.rc1 এ এটি করার চেষ্টা করেছি

পেতে পদ্ধতি স্বাক্ষর এখন সামান্য ভিন্ন।

আপনি কীওয়ার্ড আর্গুমেন্ট হিসাবে অর্থের পরে বিকল্পগুলি নির্দিষ্ট করার প্রয়োজন হয়

get /some/path, headers: {'ACCEPT' => 'application/json'}

FYI, কীওয়ার্ড আর্গুমেন্টগুলির পুরো সেটটি হল:

params: {}, headers: {}, env: {}, xhr: false, as: :symbol

কন্ট্রোলার স্পিকারে, আমি এই ধরনের HTTP গ্রহণ হেডার সেট করতে পারি:

request.accept = "application/json"

কিন্তু অনুরোধ স্পষ্ট, "অনুরোধ" বস্তু নিল। তাই আমি এখানে কিভাবে এটা করতে পারি?

আমি জেসনকে HTTP গ্রহণ হেডার সেট করতে চাই কারণ তাই আমি এটা করতে পারি:

get '/my/path'

এটার পরিবর্তে

get '/my/path.json'

Rack::Test::Methods সহ rspec ব্যবহার করে

header 'X_YOUR_HEADER_VAR', 'val'
get '/path'

শিরোনাম var X-Your-Header-Var হিসাবে আসবে


আপনার প্রশ্নটি ইতিমধ্যে উত্তর দেওয়া হয়েছে তবে যদি আপনি অন্য কোনও পদক্ষেপে কিছু পোস্ট করতে চান তবে আপনাকে এটি করতে হবে:

post :save, {format: :json, application: {param1: "test", param2: "test"}}

আমার জন্য এটি সহজ request.headers["My Header"] = "something" কাজ করছে request.headers["My Header"] = "something"


আপনি এখানে বর্ণিত হিসাবে আপনার হিট () পদ্ধতিতে তৃতীয় আর্গুমেন্ট হিসাবে HTTP শিরোনাম উল্লেখ করতে সক্ষম হওয়া উচিত:

http://api.rubyonrails.org/classes/ActionDispatch/Integration/RequestHelpers.html#method-i-get

এবং এখানে

http://api.rubyonrails.org/classes/ActionDispatch/Integration/Session.html#method-i-process

সুতরাং, আপনি এইরকম কিছু চেষ্টা করতে পারেন:

get '/my/path', nil, {'HTTP_ACCEPT' => "application/json"}

আমি টেস্ট :: ইউনিট এই ব্যবহৃত:

@request.env['HTTP_ACCEPT'] = "*/*, application/youtube-client"
get :index

আমি আলাদাভাবে হেডার সেট আপ আছে

request.headers["Accept"] = "application/json"

Get / delete / .... এর মাধ্যমে পাঠানোর চেষ্টা করছে rails4 এ সম্পূর্ণ আবর্জনা এবং আমার মাথার ব্যথা সৃষ্টি করা কারণ এটি হ্যান্ডডার হিসাবে নয় বরং প্যারামিটার হিসাবে পাঠানো হয়।

{"Accept" => "application/json"}





rspec