2013-02-15 13 views
9

में इकाई/एकीकरण परीक्षण कैसे लिखें I सेवास्टैक के लिए बहुत नया हूं। अब तक, मुझे बुनियादी एपीआई प्राप्त करने और काम करने में अच्छा सौभाग्य है (नॉर्थविंड उदाहरण विशेष रूप से मेरे लिए सहायक था)। हालांकि, यूनिट और एकीकरण परीक्षण बनाने की कोशिश करते समय मैं ठोकर खा रहा हूं।सर्विसस्टैक

मुझे हाल ही में एक अन्य सर्विसस्टैक उपयोगकर्ता से मिला है जो यूनिट और एकीकरण परीक्षणों के कुछ (संभवतः गलत) उदाहरणों को चित्रित करता है, लेकिन मैं उन काम नहीं कर सकता। https://github.com/ServiceStack/ServiceStack/issues/435

यहाँ, एक बुनियादी इकाई परीक्षण पर मेरे प्रयास है अन्य उपयोगकर्ता के सार से ज्यादातर उधार कोड का उपयोग:

यहाँ संदर्भ मैं प्रयोग कर रहे है https://gist.github.com/anonymous/4957788

जब मैं चलाने के लिए प्रयास हैलोवर्ल्डटेस्ट में टेस्ट केस, एक सिस्टम। नॉटइम्प्लेटेड एक्सेप्शन फेंक दिया गया है, "सेवा हल करने में असमर्थ" हैलोवर्ल्डनाम '"।

यह मुझे भ्रमित कर रहा है, क्योंकि मैं इसे एक अनुरोध डीटीओ पास कर रहा हूं, एक सेवा नहीं, जो मुझे कॉल करने वाले ExecuteService() विधि से सहमत है। लेकिन अपवाद से पता चलता है कि सर्विसस्टैक एक सेवा के रूप में मेरे डीटीओ का इलाज कर रहा है।

क्या कोई संभवतः मुझे सेवास्टैक के लिए यूनिट और एकीकरण परीक्षणों को सही ढंग से लिखने के तरीके के बारे में एक अच्छा, कैनोलिक उदाहरण भेज सकता है? मुझे जिक्र करना चाहिए कि मैं सामान्य रूप से .NET विकास के लिए भी नया हूं, इसलिए शायद मेरी अज्ञानता चमक रही है।

बहुत धन्यवाद।

+0

[एक यूनिट और एकता परीक्षण का एक उदाहरण के लिए इस सवाल का जवाब] देखें इस पहले (http://stackoverflow.com/a/14791657/85785) । – mythz

+0

धन्यवाद, मिथक। एकीकरण परीक्षण के बारे में एक सवाल। एंड-टू-एंड एकीकरण परीक्षण के साथ, मुझे JsonServiceClient उदाहरण के साथ कनेक्ट करने के लिए वास्तव में सेवा चलाना आवश्यक है। मैं इसके बारे में कैसे जा सकता हूं? –

+0

नीचे दिए गए उत्तर में कुछ लिंक प्रदान किए गए हैं। – mythz

उत्तर

5

testing docs और this earlier question पर देखें और simple example on how to create a Unit and Integration test के उत्तर दें।

ServiceStack.WebHost.Endpoints.Tests में अधिकांश परीक्षण स्टैंड-अलोन एकीकरण परीक्षण हैं जो केवल एक स्वयं-होस्ट किए गए HttpListener AppHost का उपयोग करते हैं। कुछ उदाहरण:

+0

इसलिए जब मैं इसे समझता हूं, तो मैं एकीकरण परीक्षण चलाते समय अपने मौजूदा ऐपहोस्ट का उपयोग नहीं कर सकता, बल्कि इसके बजाय मुझे AppHostHttpListenerBase से एक नया ऐपहोस्ट बनाना चाहिए। क्या इसका मतलब यह है कि मेरे सभी डीबी/रेडिस कनेक्शन सही ढंग से शुरू किए गए हैं, यह सुनिश्चित करने के लिए कि मुझे अपने प्राथमिक AppHost से अपने मौजूदा AppHost से मेरी मौजूदा कॉन्फ़िगर() विधि को प्रतिलिपि बनाना है? –

+0

वैसे आप हमेशा अपने एएसपी.नेट वेब एप्लिकेशन के देव उदाहरण के खिलाफ एकीकरण परीक्षण चला सकते हैं, लेकिन अन्यथा यदि आप बस अपनी सेवा के सबसेट का परीक्षण करना चाहते हैं, तो आप केवल उन चीज़ों के साथ एक विशिष्ट ऐपहोस्ट बना सकते हैं, जिन्हें आप परीक्षण करना चाहते हैं। अन्यथा अलगाव में यूनिट परीक्षण सेवाओं के साथ चिपके रहें और आपको जो चाहिए उसे मजाक करें। – mythz

+0

धन्यवाद, मिथक। यह मेरे लिए चीजों को स्पष्ट करने में मदद करता है, चीयर्स। –

संबंधित मुद्दे