हाँ, आप अनुरोध नकली कर सकते हैं। मेरे यहां एक लंबा लंबा जवाब था कि यह कैसे करना है, लेकिन वास्तव में यह आवश्यक नहीं है कि आप क्या चाहते हैं।
बस अपने उदाहरण में सहायक वस्तु पर अपनी सहायक विधि को कॉल करें। इस प्रकार:
describe "#item" do
it "does whatever" do
helper.item.should ...
end
end
इससे आपको एक परीक्षण अनुरोध ऑब्जेक्ट तक पहुंच मिल जाएगी। पर निर्भर करता है के बाद से
before :each do
helper.request.path = 'some-path'
end
वास्तव में, पूर्णता के लिए, मुझे मेरी मूल जवाब शामिल कर सकते हैं, आप क्या प्रयास कर रहे हैं: आप अनुरोध पथ के लिए एक विशिष्ट मूल्य निर्दिष्ट करने की आवश्यकता है, तो आप इस तरह ऐसा कर सकते हैं ऐसा करने के लिए अभी भी सहायक हो सकता है। सभी एक पंक्ति में & ठूंठ उपहास करने के लिए
request = mock('request')
controller.stub(:request).and_return request
आप लौटे अनुरोध इसी तरह
request.stub(:method).and_return return_value
और विकल्प वाक्य रचना के ठूंठ विधियां जोड़ सकते हैं:
का तरीका यहां बताया अनुरोध नकली कर सकते हैं
request = mock('request', :method => return_value)
रुपेक शिकायत करेगा अगर आपके नकली को मैसा प्राप्त होता है जीएस कि आप stub नहीं था। यदि अन्य सामान हैं तो सहायक ऑब्जेक्ट पर बस अपने अनुरोध सहायक विधि को कॉल करें, यह कर रहा है कि आपको अपने परीक्षण में परवाह नहीं है, आप नकली को "शून्य वस्तु" बनाकर आरएसपीसी को बंद कर सकते हैं, उदाहरण के लिए।
describe "#item" do
let(:request){ mock('request', :fullpath => 'some-path') }
before :each do
controller.stub(:request).and_return request
end
it "does whatever"
end
आप "की आवश्यकता होती है 'rspec/रेल'" है अपने spec_helper.rb में: जैसे जैसे इतना
यह सब तो आप शायद अपने विशिष्ट परीक्षण गुजर प्राप्त करने की आवश्यकता की तरह लग रहा है? – Rubyman
हाँ, मैं करता हूं। धन्यवाद। –