मैं cucumberjs, 127.0.0.1 करने के लिए प्रॉक्सी सर्वर स्थापित करने और साथ एक Node.js प्रक्रिया hooking के साथ phantomjs के संयोजन का उपयोग करके REST API का नकली http-proxy
और nock
वहाँ। CucumberJS महत्वपूर्ण हिस्सा नहीं है, आप किसी भी तरह से टेस्ट परिदृश्य लिख सकते हैं, बाकी सिमुलेशन की कुंजी है। यह केवल मैच-अनुरोध-रिटर्न-डेटा द्वारा मॉक करने में सक्षम है, लेकिन आप उत्तर का उत्पादन करने के लिए पैटर्न और हुक कॉलबैक फ़ंक्शन द्वारा अच्छी तरह से फ़िल्टर कर सकते हैं, इसलिए आप किसी भी स्तर की ग्रैन्युलैरिटी का अनुकरण कर सकते हैं, जिसकी आपको ज़रूरत है (चरम अंत में) पूर्ण डेमो सर्वर, लेकिन आप इसे बढ़ा सकते हैं)।
यह अच्छी तरह से काम करता है:
- प्रेत एक URI का अनुरोध करते हैं।
- अनुरोध 127.0.0.1:पोर्ट पर प्रॉक्सी सर्वर पर जाता है।
- आपका नोड.जेएस प्रक्रिया पारदर्शी रूप से उपयोग करके इसे आगे बढ़ाती है
http-proxy
। तो कोई भी "सामान्य" लोडिंग (पृष्ठ, चित्र) काम करता है।
- यदि आप कुछ अनुरोधों (एपीआई, मुख्य रूप से)
nock
को इसके लिए उपयोग करना रोकते हैं ।
मेरे परिदृश्य में, मैंने इसे एक ही प्रक्रिया में ककड़ी के जेएस परीक्षणों के साथ जोड़ा, इसलिए यह इस प्रकार था:
- टेस्ट चलता है।
- यह
nock
परीक्षण के परिदृश्य के लिए HTTP मॉकिंग सेट करता है ।
- यह सेलेनियम प्रोटोकॉल के माध्यम से प्रेत में एक पेज लोड करता है।
शेष इस पैराग्राफ में पहले दिखाया गया है (अर्थात, यह एक सा है, मैं परीक्षण धावक के रूप में एक पृष्ठ लोड करने के लिए प्रेत निर्देश देता हूं, जो सभी अनुरोधों को वापस मेरे पास भेज देता है, और मैं उन्हें नेट पर भेज देता हूं; या अवरोधन देता हूं; अगर यह परीक्षित एपीआई है)।