2011-04-19 6 views
5

मैं कुछ हद तक यूनिट परीक्षण में नौसिखिया हूं। यूनिट एक आलसी लोड संपत्ति का परीक्षण और सोच की एक समस्या पर ठोकर खाई अगर उस करने के लिए एक सरल उपाय है:एक आलसी लोड संपत्ति का परीक्षण करने के लिए सरल तरीका

private SubscriptionType _subscriptionType; 
public SubscriptionType SubscriptionType 
{ 
    get 
    { 
     if (_subscriptionType == null ||_subscriptionType.SubscriptionTypeId != this.SubscriptionTypeId) 
     { 
      if (this.SubscriptionTypeId !=0) 
       _subscriptionType = SubscriptionType.Load(this.SubscriptionTypeId); 
     } 

     return _subscriptionType; 
    } 
} 

मैं संपत्ति में तर्क परीक्षण करने के लिए (यदि बयान) और न कि वास्तविक SubscriptionType लोड कार्यक्षमता की जरूरत है - लगता है यहां सबसे स्पष्ट दृष्टिकोण की तरह शायद सब्सक्राइब टाइप करें। लोड करें और नकली विधि के साथ प्रतिस्थापित करने के लिए कुछ प्रकार के आईओसी का उपयोग करें। मैं बस सोच रहा हूं कि इस तरह के रिफैक्टरिंग से बचने के लिए कोई आसान तरीका है - एक सही इकाई परीक्षण केस लिखने के लिए कुछ हद तक एक अतिवृद्धि की तरह लगता है। आपके विचार? धन्यवाद!

+4

.NET 4 में आलसी कक्षा को देखें। इसका उपयोग करके, आपके पास कम कोड होगा - शायद यूनिट परीक्षण –

+1

के लायक कुछ भी नहीं है आप परीक्षण करने का प्रयास कर रहे हैं? तथ्य यह है कि संपत्ति में सही डेटा या तथ्य यह है कि यह आलसी तरीके से भरा हुआ है? – zerkms

+0

तर्क का परीक्षण करने की कोशिश कर रहा है कि यह जांच करता है जब स्थिति पूरी हो जाती है और लोड को बाईपास करता है – DSY

उत्तर

5

जब तक आप टाइपमैक आइसोलेटर या मोल्स का उपयोग नहीं करना चाहते हैं तो आपको इंटरफ़ेस के पीछे लोड विधि को छिपाना होगा और कक्षा में इंजेक्ट करना होगा। इसके चारों ओर कोई रास्ता नहीं है, लेकिन आप केवल टेस्टेबिलिटी के लिए ऐसा नहीं करेंगे। आम तौर पर आप इस तरह के एक रिफैक्टरिंग से चिंताओं को बेहतर अलगाव प्राप्त करते हैं।