web services - एक बिज़टक अनुरोध-प्रतिक्रिया पोर्ट द्वारा भस्म वेबसर्विजिंग मजाक कर रहा है




web-services mocking (5)

मैं BizUnit का उपयोग कर रहा हूँ यूनिट-परीक्षणों को मेरे बिज़्टकॉक आर्केस्ट्रेशन, लेकिन कुछ आर्केस्ट्रेशन एक वेबसर्विज का उपभोग करते हैं, और इन परीक्षणों को यूनिट परीक्षण की तुलना में अधिक एकीकरण परीक्षण की तरह लगता है।

मैं एक Windows प्रपत्र अनुप्रयोग से वेब सेवा का परीक्षण करने के लिए, उत्पन्न प्रॉक्सी ऑब्जेक्ट्स का नकली करने के लिए एक मजाकिया ढांचे का उपयोग करने से परिचित हूं, लेकिन मैं इसे अनुरोध-प्रतिक्रिया पोर्ट में एक अधिक एकीकृत तरीके से करने में सक्षम होना चाहता हूं ?

आप इस समस्या का कैसे सामना करेंगे?

https://code.i-harness.com


मुझे थोड़ी देर में ऐसा करना नहीं पड़ा है, लेकिन जब मैं अपने बिजटॉक एप्लिकेशन का परीक्षण करता हूं तो मैंने हमेशा साबुन यूआई या वेब सेवा स्टूडियो का इस्तेमाल किया। मैं प्रयास के बिना अलग इनपुट मूल्यों का परीक्षण करने में सक्षम था।


अस्वीकरण: मैं टाइपामॉक पर काम करता हूं।

मुझे यकीन नहीं है कि आपको क्या करना है, लेकिन मुझे लगता है कि निम्न लिंक एक अच्छी शुरुआत है:


इसे करने का यही तरीका है:

रिचर्ड के सवाल पर वापस, हालांकि, मेरे पिछले देव टीम का समाधान था मूल रूप से हमने जो भी किया था वह सामान्य विन्यास एचटीटीपीहैंडलर लिखना था जो आने वाली सेवा अनुरोधों को पार्स करता है और पूर्व-सेट प्रतिक्रियाओं को वापस लौटाता है। ऐसी स्थिति के आधार पर वापस भेजा गया जवाब कॉन्फ़िगर करने योग्य था जैसे कि XPath


बिज़ यूनेट एक्सटेन्शन्स (www.codeplex.com/bizunitextensions) के सह-लेखक के रूप में मैं सहमत हूं कि बिज़ यूनेट में नाम "इकाई" भ्रामक हो सकता है लेकिन बिज़्टकॉक के लिए, 'एकीकरण परीक्षण' इकाई परीक्षण है स्कीमा और मानचित्रों का परीक्षण करने के लिए कुछ बिज़टक लोक ने सफलतापूर्वक पाइप लाइन घटकों और अन्य टेस्ट हार्नेस (+ BizUnit / Extensions) का परीक्षण करने के लिए मोजे का इस्तेमाल किया है।

आर्केस्ट्रेशन दुर्भाग्य से अपारदर्शी हैं I लेकिन इसके लिए अच्छे कारण हैं।

(ए) संदेश बॉक्स में भारी सदस्यता प्रणाली की वजह से - जब कि सक्रियण आदि सक्रिय हो जाते हैं, आर्केस्टेशन होस्ट करने के लिए कुछ "आभासी" प्रक्रिया को आग लगाना संभव नहीं है (जो पाइपलाइनों के लिए किया जा सकता है।) टॉमस रेस्ट्रेपो ने किया है इन पंक्तियों के साथ कुछ)

(बी) इसके अलावा, यह कैसे वर्चुअल प्रक्रिया हठ और निर्जलीकरण को संभालता है? मैं दांव लगाता हूं कि WF का इस्तेमाल करने वाले लोगों को वर्कफ़्लो पूरी तरह से परीक्षण करने की कोशिश करने में एक ही समस्या होगी।

(सी) हम सीधे # सी के साथ काम नहीं करते हैं, इसलिए हम ऑर्कस्ट्रेशन कोड में एक नकली इंटरफ़ेस "इंजेक्ट" कर सकते हैं।

(डी) एक आर्केस्ट्रा वास्तव में एक "इकाई" नहीं है इसका एक समग्र तत्व इकाइयां संदेश संदेश और संदेश बॉक्स और बाहरी आकृतियों से अभिव्यक्ति आकृतियों के माध्यम से जा रही संदेश हैं। तो भी अगर आप एक नकली webservice इंटरफ़ेस इंजेक्ट कर सकते हैं आप नकली संदेश बॉक्स और सहसंबंध सेट और अन्य चीजों को इंजेक्ट नहीं कर सकते।

एक वस्तु जो आर्केस्ट्रेशन के लिए किया जा सकता है (और मैं यह करने के लिए BizUnitExtensions पुस्तकालय के अतिरिक्त विचार कर रहा हूं) ऑर्केस्ट्रेसप्रोफाइल उपकरण के साथ लिंक करना है क्योंकि उस उपकरण ने सभी आकृतियों की एक विस्तृत विस्तृत रिपोर्ट दी है और किसी भी तरह उस व्यक्ति की जांच करें कदम निष्पादित (और शायद निष्पादन के लिए लिया समय) यह ऑर्केस्ट्रेस को एक सफ़ेद बॉक्स के थोड़ा और अधिक बनाने में काफी दूर जा सकता है.इसके अलावा यह भी मानना ​​है कि ऑर्केस्ट्रेशन डीबगर कई वैरिएबल मानों को दिखाता है, निश्चित रूप से एपीआई के माध्यम से यह जानकारी प्राप्त करने के लिए संभव है कि वे दर्शकों के मूल्यों को दिए गए उदाहरण के लिए दिए गए बिंदु पर थे

रिचर्ड के सवाल पर वापस, हालांकि, मेरे पिछले देव टीम का समाधान था मूल रूप से हमने जो भी किया था वह सामान्य विन्यास एचटीटीपीहैंडलर लिखना था जो आने वाली सेवा अनुरोधों को पार्स करता है और पूर्व-सेट प्रतिक्रियाओं को वापस लौटाता है। ऐसी स्थिति के आधार पर वापस भेजा गया जवाब कॉन्फ़िगर करने योग्य था जैसे कि XPath। बिल्ड और देव बाइंडिंग फाइल्स में, वेबसाइज़र एंड पॉइंट नकली था। यह वास्तविक तीसरे पक्ष के webservices से बिल्ड और देव परिवेश को अलग करने में शानदार ढंग से काम किया। इससे "अनुबंध पहले" दृष्टिकोण में भी मदद मिली, जहां हमने नकली और ओर्च विकासकर्ता का निर्माण किया था, जबकि इसका उपयोग वेबसाइजर लेखक ने आगे किया और वास्तविक सेवा का निर्माण किया।

[अपडेट: 17-एफईबी -0 9: यह टूल अब कोडप्लेक्स पर है: http://www.codeplex.com/mockingbird यदि यह दृष्टिकोण दिलचस्प लग रहा है, इसे बाहर की जाँच करें और मुझे बताएं कि आप उपकरण के बारे में क्या सोचते हैं]

अब, इससे पहले कि कोई व्यक्ति पुराने "मोक ऑब्जेक्ट फ़्रेमवर्क" में चेस्टनट को फेंकता है, मुझे यह कहना चाहिए कि उपरोक्त उपयोग बिस्तकाक 'उपभोक्ताओं' के साथ-साथ गैर बिज़्टेक उपभोक्ताओं के लिए भी किया गया था, लेकिन मैंने भी एनएमक 2 के साथ काम किया है और यह पाया कि CLR उपभोक्ताओं को लिखते समय नकली इंटरफेस और अपेक्षाओं को सेट करने का एक शानदार तरीका हो (मैं जल्द ही म्यूक्यू और टाइप मॉक आदि में देख रहा हूं)। हालांकि, यह ऊपर बताए गए कारणों के लिए आर्केस्ट्रेशन के साथ काम नहीं करता है।

उम्मीद है की यह मदद करेगा।

सादर,

Benjy


यह एक बहुत ही दिलचस्प सवाल है कि मैंने अभी तक एक सामान्य सामान्य जवाब नहीं देखा है। कुछ लोग साबुन का उपयोग करने का सुझाव देते हैं लेकिन मेरे पास वास्तव में अभी तक परीक्षण करने का समय नहीं था। यह पृष्ठ इस पर दिलचस्प हो सकता है

किसी अन्य तरीके से WebDev.WebHost.dll लपेट सकते हैं और इसका इस्तेमाल कर सकते हैं ... फिल Hakkck चर्चा है कि इस पोस्ट में

यहां पर यहां पर भी चर्चा की जा रही है

कृपया हमें बताएं कि क्या आपको इसका एक और समाधान मिल रहा है!