2016-07-26 7 views
6

इसलिए मुझे अपने डेटा पुनर्प्राप्ति के लिए एक यूनिट टेस्ट बनाना है, जिस ऑब्जेक्ट को मैं प्राप्त करना चाहता हूं वह काफी बड़ा है। मेरे पास "GetbyId" के साथ भंडार हैं (वहां हम डेटाोबजेक्ट और मैपिंग को पुनर्प्राप्त कर चुके हैं)। मैं पता लगा यह 2 इकाई परीक्षण बनाने के लिए बेहतर होगा:सी # यूनिट टेस्ट: रिपोजिटरी से डेटा पुनर्प्राप्त करें

  1. dataobject की पुन: प्राप्त
  2. मानचित्रण अपने मॉडल को

हम पहले से ही कुछ परीक्षण उदाहरण तैयार किए और मैं जाँच कर रहा हूँ परीक्षण इकाई के सहेजे गए एक्सएमएल के साथ इकाइयां, इसलिए हम काफी लचीला हैं। मेरी समस्या मैपिंग के साथ है, क्योंकि मेरे मॉडल में कुछ इंटरफ़ेस हैं, मैं इसे क्रमबद्ध नहीं कर सकता हूं और मैं प्रत्येक उदाहरण समाधान को हार्डकोड नहीं करना चाहता (क्योंकि वे बहुत अधिक हैं)

क्या किसी को यह पता है कि कैसे मैं मैपर बेहतर परीक्षण कर सकते हैं?

Ps: मुझे पता है, मैं चीजों को बुरी तरह समझाने का मालिक हूं, इसके लिए खेद है।

संपादित करें:

यहाँ एक उदाहरण: के बाद से iContact व्यक्ति में है मैं इसे क्रमानुसार नहीं कर सकते हैं तो मैं कितनी आसानी से यह जांच करने के लिए पता नहीं है (इस मॉडल एक उदाहरण वास्तविक बिना लगभग 200 पंक्तियों बड़ा है

//arrange: 
var expected = new Person{ Name = "Alice", Contact = new Contact(){Phone = ""}}; 
CompareLogic compareLogic = new CompareLogic(); 

//act: 
var result = target.GetbyId(1); 

//assert: 
Assert.IsTrue(compareLogic.Compare(expected, result).AreEqual); 

एक अन्य विकल्पउपयोग करने के लिए है: इंटरफेस से बच्चे पंक्तियों)

public Person: IPerson 
{ 
    public Name {get; set;} 
    public IContact {get; set;} 
} 

public Contact: IContact 
{ 
    public Phone {get; set;} 
} 
+2

क्या आप कृपया अपने मॉडल वर्ग और रिपोजिटरी क्लास के कुछ स्निपेट जोड़ सकते हैं? इसके बारे में सोचना आसान होगा :) –

+0

मैं लगभग हमेशा एक्सएमएल के बजाय जेसन.नेट और जेएसओएन प्रारूप का उपयोग करता हूं, यह अधिक लचीला और पढ़ने में आसान है (जो परीक्षण के समय खराब नहीं है)। –

+0

तो सवाल यह है कि अपेक्षित वस्तु की तुलना वास्तविक रूप से कैसे करें? –

उत्तर

0

आमतौर पर मैं उन मामलों के लिए उपयोग Compare.net गिनती(पूर्ण प्रकटीकरण के लिए मुझे इस उपकरण के साथ कोई अनुभव नहीं है ...)

एक और विकल्प है जोर देने के लिए एक सहायक विधि बनाने के लिए, फिर प्रत्येक परीक्षण में इसका पुन: उपयोग करें।

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