2013-02-05 7 views
11

का उपयोग कर यूनिट परीक्षण वेब एपीआई मैं एक वेब एपीआई परियोजना के लिए कुछ यूनिट परीक्षण करने की कोशिश कर रहा हूं। मैं वेब एपीआई होस्टिंग पर्यावरण अनुकरण कर रहा हूँ। ऐसा लगता है कि मैं मेमोरी होस्ट (एचटीपी सर्वर) या स्वयं होस्ट (HttpSelfHostServer) में उपयोग कर सकता था।एचटीपी सर्वर या HttpSelfHostServer

बस सोच रहा है कि अंतर क्या है और कौन सी तकनीक उन विकल्पों के लिए क्या सीमा है और क्या कोई सीमा है।

उत्तर

12

आपको एंड-टू-एंड परीक्षणों के लिए मेमोरी होस्ट में उपयोग करना चाहिए और फिर अपने पर्यावरण की नेटवर्क कनेक्टिविटी को अलग से जांचना चाहिए।

कई कारणों से लिए:

  • स्मृति मेजबान में, जैसा कि नाम से पता चलता है, स्मृति में पूरी तरह से चलाता है तो बहुत तेजी से

  • स्व मेजबान ऊंचा विशेषाधिकारों के साथ चलाने के लिए की जरूरत है हो जाएगा, इसलिए आपके परीक्षणों को "व्यवस्थापक" पहचान के संदर्भ में निष्पादित करने की आवश्यकता होगी। यह वांछित से बहुत दूर है। यदि आप स्क्रिप्ट बनाने या पावरशेल से परीक्षण निष्पादित करना चाहते हैं, तो यह विशेष रूप से परेशानीपूर्ण है, जिसके परिणामस्वरूप, इन प्रक्रियाओं को उन्नत विशेषाधिकारों के साथ भी शुरू करना होगा। इसके अलावा, यह आपके द्वारा परीक्षण किए जाने वाले किसी भी सर्वर पर होना होगा।

  • स्वयं होस्ट में आप दिए गए ऑपरेटिंग सिस्टम के नेटवर्किंग स्टैक का परीक्षण करते हैं जो वास्तव में ऐसा कुछ है जिसे परीक्षण नहीं किया जाना चाहिए - क्योंकि यह विभिन्न वातावरण (विकास, स्टेजिंग, क्यूए, उत्पादन आदि) में भिन्न हो सकता है। उदाहरण के लिए - एक दिया गया पोर्ट उपलब्ध नहीं हो सकता है। नतीजतन आप अलग-अलग मशीनों में अनावश्यक डिबगिंग प्रयासों में भी खींच सकते हैं ताकि परीक्षण चल सकें।

  • अंत में, स्वयं की मेजबानी का उपयोग कर परीक्षण करते हैं, अभी भी गारंटी नहीं है कि सेवा ठीक से चलेगा जब वेब की मेजबानी की है और इसके विपरीत - तो नहीं आप स्मृति में रूप में अच्छी तरह सिर्फ परीक्षण

+4

आप क्या कर सकते हैं स्वयं होस्ट चलाने के लिए हमेशा व्यवस्थापक विशेषाधिकारों की आवश्यकता है। यदि आप स्थानीय रूप से सुन रहे हैं तो आपको 'config.HostNameComparisonMode = System.ServiceModel.HostNameComparisonMode.Exact;' को गैर-व्यवस्थापक के रूप में चलाने के लिए है। –

+1

हां अच्छा बिंदु - अभी भी बहुत दर्द है हालांकि –

+0

ओविन 'टेस्टसेवर' का उपयोग करने की सिफारिश करें। लिंक: http://www.juliencorioland.net/archives/using-owin-to-test-your-web-api-controllers#.U9cQE2NraM4 – Youngjae

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