में मैं निम्नलिखित कल्पना है ...छोटा करते RestClient प्रतिक्रिया RSpec
describe "successful POST on /user/create" do
it "should redirect to dashboard" do
post '/user/create', {
:name => "dave",
:email => "[email protected]",
:password => "another_pass"
}
last_response.should be_redirect
follow_redirect!
last_request.url.should == 'http://example.org/dave/dashboard'
end
end
सिनात्रा आवेदन पर पोस्ट विधि बाकी-ग्राहक का उपयोग कर एक बाहरी सेवा को फोन करेगा। मुझे किसी भी तरह से डिब्बाबंद प्रतिक्रियाओं को वापस भेजने के लिए बाकी क्लाइंट कॉल को रोकने की ज़रूरत है, इसलिए मुझे एक वास्तविक HTTP कॉल का आह्वान करने की आवश्यकता नहीं है।
मेरा आवेदन कोड है ...
post '/user/create' do
user_name = params[:name]
response = RestClient.post('http://localhost:1885/api/users/', params.to_json, :content_type => :json, :accept => :json)
if response.code == 200
redirect to "/#{user_name}/dashboard"
else
raise response.to_s
end
end
कोई मुझे बता सकते हैं मैं कैसे इस RSpec के साथ क्या? मैंने चारों ओर गुगल किया है और कई ब्लॉग पोस्टों में आ गया है जो सतह को खरोंच करते हैं लेकिन मुझे वास्तव में जवाब नहीं मिल रहा है। मैं आरएसपीसी अवधि के लिए काफी नया हूँ।
धन्यवाद
मैं सुझाव देता हूं कि 'डबल' सेट को 'लेट' ब्लॉक में सेट करें, और 'post' को 'पहले' ब्लॉक में ले जाएं। – iain
सुझाव @Iain के लिए धन्यवाद लेकिन इस सवाल से संबंधित नहीं है :) लेकिन हां, इसमें 'let (: sucessful_response) {...}' के साथ/उपयोगकर्ता/create'l ब्लॉक पर 'वर्णन' पोस्ट होना चाहिए और पहले ब्लॉक और फिर सशक्त और त्रुटि प्रतिक्रिया के लिए एक वर्णन। –
धन्यवाद दोस्तों। मैं इस समाधान का उपयोग उन उपकरणों के साथ करूंगा जो मेरे पास पहले से ही किसी तीसरे पक्ष की ओर जाने के बजाय हैं और यह अच्छी तरह से काम करता है। – RobA2345