2012-10-22 18 views
6

के साथ एक सी # टाइमर मॉकिंग मैं एक डब्ल्यूपीएफ एमवीवीएम व्यू मॉडल बनाने का प्रयास कर रहा हूं जिस पर निर्भरता System.Timing.Timer इंजेक्शन है, और मोक के साथ व्यू मॉडल का परीक्षण करना चाहता है।मोक

मैंने Timer कक्षा के चारों ओर एक पतली आवरण लिखा है जिसमें इंटरफ़ेस ITimer है, लेकिन कक्षा में टाइमर के योगदान का वास्तव में परीक्षण करने का सबसे अच्छा तरीका अनिश्चित है। क्या एक नकली विलुप्त घटना 'बल' करने का कोई अच्छा तरीका है? क्या किसी और के पास एक बेहतर तकनीक है?

+3

इस [प्रश्न] (http://stackoverflow.com/questions/11495830/unit-testing-a-class-that-uses-a-timer) पर एक नज़र डालें और यह [प्रश्न] (http: // stackoverflow.com/questions/8940982/how-can-i-run-the-event-handler-assigned-to-mock) –

+0

धन्यवाद, मैंने इस तरह की चीज़ के लिए कुछ गुगल किया था, लेकिन घटनाओं पर मेरे प्रश्नों पर ध्यान केंद्रित किया था टाइमर के बजाए सामान्य रूप से, और कई अच्छे नतीजे नहीं मिल सके। –

उत्तर

3

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

+0

मैं अलगाव की अवधारणा के बारे में सब कुछ जानता हूं, इसलिए टिन मॉकेबल रैपर मैंने 'टाइमर' के आसपास लिखा था। मैं विशेष रूप से घटनाओं का मज़ाक उड़ाते हुए तकनीकों में अधिक रुचि रखता था। ऐसा लगता है कि उफुक की टिप्पणी वह है जो मैं ढूंढ रहा हूं। –

+0

बढ़ती घटना बस आपके मॉडल पर नकली द्वारा कुछ कार्रवाई बुला रही है। मुझे इसमें कुछ अजीब नहीं दिख रहा है। –

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