2009-09-18 12 views
6

मैं मोक का उपयोग करके एक काफी जटिल कक्षा का परीक्षण करने की कोशिश कर रहा हूं और एक समस्या में भाग रहा हूं।moq - कक्षा को अपवादों को निगलने के तरीके को सत्यापित करने के लिए कैसे कहा जाता है

मैं यह सत्यापित करने की कोशिश कर रहा हूं कि एक विधि को कॉल नहीं किया जाता है, और आमतौर पर यह MockBehavior.Strict को सेट करके करना आसान है, लेकिन यहां हालांकि कक्षा में अपनी त्रुटि रिपोर्टिंग तंत्र है, इसलिए यह मोक द्वारा अपवाद को निगलता है ।

। परीक्षण के अंत में सत्यापित करें सभी विधि भी ठीक से गुजरती हैं, जो वास्तव में अजीब है। क्या यह मोक में एक बग है, क्या कोई कामकाज है?

मैंने इस विधि पर कॉलबैक स्थापित करने और Assert करने का भी प्रयास किया है। इसके अंदर विफल रहें, लेकिन चूंकि यह भी निगल जाता है, परीक्षण ढांचे (वीएस 2008 बिल्टिन टेस्ट) को इसकी सूचना नहीं दी जाती है। ..

मैं Moq 2.6.1014.1 का उपयोग कर रहा हूं। (अभी तक moq 3 में अपग्रेड करने का समय नहीं था)

उत्तर

11

अच्छा, यह शर्मनाक है, मैंने इसे हल करने में कामयाब रहा है। फिर भी

mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
             It.IsAny<string>(), 
             It.IsAny<string>(), 
             It.IsAny<object>()), Times.Never()); 

समझ में नहीं आता क्यों VerifyAll काम नहीं किया है, लेकिन इस वैसे भी बिल फिट करने के लिए लगता है:

3.0 में आप यह कर सकते हैं। अगर कोई और कुछ इसी तरह की तलाश में है तो मैं सवाल छोड़ दूंगा।

+0

आप यह निर्धारित करने के लिए http://groups.google.com/group/moqdisc?pli=1 पर इसे दोबारा पोस्ट करना चाहते हैं कि यह एक बग या अपेक्षित व्यवहार है या नहीं। – TrueWill

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