मेरे ऐप में कुछ कार्यक्षमता क्लाइंट के आईपी पते के आधार पर अलग-अलग काम करती है। क्या रेलवे कार्यात्मक परीक्षणों में परीक्षण करने का कोई तरीका है? मैं टेस्ट :: यूनिट और कंधे का उपयोग कर रहा हूं।रेल नियंत्रक परीक्षणों में, क्या एक विशिष्ट रिमोट आईपी अनुकरण करने का कोई तरीका है?
उत्तर
आप अपने नियंत्रक कॉल से पहले REMOTE_ADDR पर्यावरण परिवर्तक को बदलकर आसानी से इसे बिना कर सकते हैं।
def test_should_reject_ip_1_2_3_4
@request.env['REMOTE_ADDR'] = '1.2.3.4'
get :index
assert_redirected_to root_path
end
आप दूरस्थ स्थापित कर रहे हैं:
def index
if request.remote_ip == '1.2.3.4'
redirect_to root_path
return
end
@articles = Article.all
end
यहाँ आप कैसे परीक्षण कर सकते हैं कि यह काम करता है: यहाँ एक काल्पनिक नियंत्रक कि घर पथ पर रीडायरेक्ट अगर उनके आईपी पते 1.2.3.4 है नियंत्रक कॉल के पहले आईपी, इसलिए आप किसी भी विशेष प्लगइन या रत्न के बिना डेटा नकली करने में सक्षम हैं।
context "with ip 1.2.3.4" do
setup do
@request.env['REMOTE_ADDR'] = '1.2.3.4'
get :index
end
should_not_assign_to :items
should_redirect_to("home"){home_path}
should_not_set_the_flash
end
प्राप्तकर्ता नियंत्रक को आईपी पते (या पैरामीटर के रूप में प्राप्त करने) का पता लगाने के लिए एक विधि की आवश्यकता होती है, और आपको अपने परीक्षण के लिए एक विशिष्ट आईपी पता लगाने के लिए या केवल पैरामीटर के रूप में परीक्षण आईपी पते निर्दिष्ट करने की आवश्यकता है प्रक्रिया।
यदि आपका ऐप जो कुछ भी करता है, उस पर विचार करना आसान नहीं है, तो आप क्या कर सकते हैं, "कस्टम कार्यक्षमता" आपके घर नेटवर्क पर किसी अन्य कंप्यूटर पर लागू होती है, यदि आपके पास कोई है, और इस तरह ऐप का परीक्षण करें। हालांकि वास्तव में "यूनिट टेस्ट के माध्यम से इसे हल करें" उत्तर हल नहीं करता है।
क्या मैं पूछ सकता हूं कि आपका ऐप आईपी पते के आधार पर एक विशिष्ट कार्रवाई क्यों करेगा? शायद एक और तरीका है।
आप अनुरोधों को दबाकर और एक नकली ऑब्जेक्ट लौटकर इसे पूरा करने में सक्षम होना चाहिए जिसमें request.remote_ip
वांछित आईपी पते के बराबर है।
मैं इस पर सहायता के लिए FakeWeb पर देखता हूं। यह आपको अपेक्षित अनुरोध/प्रतिक्रियाओं को आसानी से सेट करने देता है। रेलवे खुद does these kinds of tests कैसे देख सकता है यह देखने के लिए भी निर्देशक हो सकता है।
मणि "मोचा" का उपयोग आप कर सकते हैं: और यहाँ चाहिये संस्करण, ItemsController के लिए है
test "should something" do
request.expects(:remote_ip).returns("189.81.139.183")
...
end
- 1. क्या रिमोट-विशिष्ट .gitignores सेट करने का कोई तरीका है?
- 2. F5 बिग-आईपी सर्वर अनुकरण करने का कोई तरीका?
- 3. पायथन: आईपी डेटा को एक विशिष्ट रिमोट आईपी-एड्रेस
- 4. एएसपी.नेट एमवीसी - क्या व्यूस्टेट अनुकरण करने का कोई तरीका है?
- 5. सी के साथ एक विशिष्ट आईपी पता पिंग करने का कोई तरीका है?
- 6. क्या विम में रीशेर्पर की "विस्तार चयन" सुविधा का अनुकरण करने का कोई तरीका है?
- 7. क्या एक ही बॉक्स पर मल्टीकास्ट आईपी का परीक्षण करने का कोई तरीका है?
- 8. क्या आईपैड में वेबकिट इंस्पेक्टर रिमोट डीबगिंग का उपयोग करने का कोई तरीका है?
- 9. क्या एक विशिष्ट आदेश में न्यूटिट टेस्ट निष्पादित करने का कोई तरीका है?
- 10. जावा में, क्या एक विशिष्ट आवृत्ति के स्वर को संश्लेषित करने का कोई तरीका है?
- 11. क्या गो में "शायद" या "विकल्प" प्रकार अनुकरण करने का कोई अच्छा तरीका है?
- 12. पाइथन रिमोट पूंछ अनुकरण करने के लिए?
- 13. क्या MySQL में समूह के साथ समूह को अनुकरण करने का कोई तरीका है?
- 14. क्या WPF में UseLayoutRounding को अनुकरण करने का कोई तरीका है .NET 3.5
- 15. क्लाइंट आईपी को रेडिस में लाने का कोई तरीका है?
- 16. रेल में ऐप विशिष्ट कॉन्फ़िगरेशन को स्टोर करने का सबसे अच्छा तरीका क्या है?
- 17. आईपी + सीआईडीआर के साथ आईपी से सीधे चयन क्वेरी से मिलान करने का कोई तरीका है?
- 18. क्या PHP का एफ़टीपी शुरू करने का कोई तरीका है?
- 19. क्या कोडिनेटर नियंत्रक को एक छवि वापस करने का कोई तरीका है?
- 20. क्या ऐसा करने का कोई तरीका है?
- 21. क्या रिमोट मशीन पर कठपुतली स्क्रिप्ट का परीक्षण करने का कोई आसान तरीका नहीं है?
- 22. क्या अनिश्चित परीक्षणों पर फ्रेशन परीक्षण विफल करने का कोई तरीका है?
- 23. यूनिट परीक्षणों में अपवाद फेंकने का अनुकरण कैसे करें?
- 24. क्या MySQL संग्रहीत प्रक्रियाओं में कोई सूची डेटाटाइप है, या उन्हें अनुकरण करने का एक तरीका है?
- 25. क्या @ नियंत्रक द्वारा परिभाषित वसंत मैपिंग के बारे में जानकारी पुनर्प्राप्त करने का कोई तरीका है?
- 26. क्या एक विशिष्ट फ़ाइल के लिए ReSharper को अक्षम करने का कोई तरीका है?
- 27. क्या Angularjs में सीधे नियंत्रक और दायरे से बातचीत करने का कोई तरीका है?
- 28. क्या विंडोज फोन 7 एमुलेटर पर टॉम्बस्टनिंग अनुकरण करने का कोई तरीका है?
- 29. रेल में class_attribute प्रारंभ करने का सही तरीका क्या है?
- 30. मीडिया नियंत्रक को डिस्कनेक्ट करने का सही तरीका क्या है?
क्यों पता लगाने के आईपी: एप्लिकेशन अलग यूआई कि क्या उपयोगकर्ता के अंदर या बाहर के आधार पर तत्वों से पता चलता हमारी स्थानीय नेटवर्क। – Ethan