2012-03-06 22 views
11

मैं वर्तमान में सर्विसस्टैक का मूल्यांकन कर रहा हूं (नेट में आराम आधारित सेवाओं को बनाने के लिए)। ब्याज के क्षेत्रों में से एक परीक्षण पक्ष है। मेरी बाकी सेवा में कई ऐप सेवाओं को इंजेक्शन दिया जाएगा (वर्तमान में ऑटोफैक का उपयोग कर)। मुझे जो चाहिए वह बाकी परत का परीक्षण करने और मेरी ऐप परत (MOQ के माध्यम से) पर उम्मीदों को परिभाषित करने के लिए एक तंत्र है, इसलिए मैं एकीकरण परीक्षण नहीं कर रहा हूं लेकिन इकाई इस परत का परीक्षण कर रही है?सर्विस स्टैक और मॉकिंग, कोई ट्यूटोरियल?

यह कैसे करें इस पर कोई विचार है?

उत्तर

12

ServiceStack Service किसी भी सामान्य सी # सेवा वर्ग की तरह है और किसी भी अन्य वर्ग की तरह बिल्कुल उसी तरह मजाक किया जा सकता है। सर्विसस्टैक सेवा के लिए न्यूनतम निर्भरता निर्भरता मुक्त IService इंटरफ़ेस मार्कर को कार्यान्वित कर रही है और जहां कोई भी सेवा केवल अनुरोध डीटीओ स्वीकार करती है और कोई ऑब्जेक्ट देता है। सभी विभिन्न एक्सएमएल, JSON, JSV और सोप अंतिम बिंदुओं का परीक्षण - यूनिट परीक्षण ServiceStack सेवाओं के लिए

एक तरह से seen in this example रूप DirectServiceClient उपयोग करने के लिए है, इस का एक लाभ यह है कि यह आप के एकीकरण के परीक्षण के रूप में एक ही यूनिट टेस्ट का उपयोग करने देता है ।

नहीं तो आप इकाई परीक्षण कर सकते हैं और, उदा किसी अन्य वर्ग की तरह यह नकली:

var service = new TestService { 
    MyDependency = new Mock<IMyDependency>().Object 
}; 
var response = service.Get(new Test { Id = 1 }); 
Assert.That(response.Result, Is.EqualTo("Hello, 1")); 
+0

@Thanks। मुझे लगता है कि हम अपनी नई परियोजना के लिए servicestack जाओगे। अच्छा कार्य। –

+2

जब मैं इस तरह से सेवाओं का मज़ाक उड़ाता हूं तो फिल्टर विशेषताएं ट्रिगर नहीं लगती हैं, क्या यह अपेक्षित व्यवहार है? – Shagglez

+0

जब आप 'IService 'को मॉक करते हैं तो आप निर्भरताओं को अलग करने के लिए इसका उपयोग कर रहे हैं। सभी फ़िल्टर विशेषताएँ स्टैक चलने के अधिक (यानी आपके एपहोस्ट क्लास में निर्दिष्ट सेटअप/कॉन्फ़िगरेशन/प्रारंभिकरण) पर निर्भर करती हैं। यदि आपको फ़िल्टर विशेषताओं में कोड का परीक्षण करने की आवश्यकता है तो विशेषता वर्गों का स्वतंत्र रूप से परीक्षण किया जाना चाहिए। – CodeMonkeyKing