هل من الممكن SelectNodes على XmlDocument إلى العودة فارغة?

StackOverflow https://stackoverflow.com/questions/57518

سؤال

هل من الممكن SelectNodes() اتصل على XmlDocument إلى العودة فارغة?

المأزق هو أن أحاول أن تصل إلى 100 ٪ اختبار الوحدة البرمجية التغطية ؛ ReSharper يقول لي أنني في حاجة إلى حماية فارغة العودة من SelectNodes() طريقة, ولكن أستطيع أن أرى مستحيل أن XmlDocument يمكن إرجاع null (و بالتالي ليس هناك طريقة لاختبار حارس بلدي شرط و تصل إلى 100 ٪ اختبار وحدة التغطية!)

هل كانت مفيدة؟

المحلول

هل من الضروري أن تصل إلى 100% مدونة التغطية ؟ في الواقع, هل من الممكن العادية (أييمكن السيطرة عليها ، قابلة للاختبار) الظروف ؟

ونحن في كثير من الأحيان تجد أن استخدام "نحوي السكر" الانشاءات مثل using {} كتلة هناك "خفية" مسارات التعليمات البرمجية التي تم إنشاؤها (على الأرجح finally {} أو catch {} كتل) التي لا يمكن أن تمارس إلا في بعض الظروف البيئية (مثل كسر مأخذ أو تقسيم القرص) يحصل في الطريق.

نصائح أخرى

تبحث في العاكس ، SelectNodes (طريقة) على XmlDocument قاعدة الطبقة ، XmlNode ، ويمكن العودة لاغية إذا كان محاولة لخلق الملاح إرجاع null.CreateNavigator() هي معقدة جدا و سوف تعود في الواقع فارغة تحت بعض الظروف.هذه الظروف تظهر أن حوالي تالف مستند XML - لذلك هناك حالة اختبار فشل SelectNodes().

إذا كنت تتصل SelectNodes على XmlDocument نفسه هو حقا XmlDocument وليس فئة مشتقة من SelectNodes لن تعود فارغة.

إذا قمت بإنشاء سليل الطبقة تجاوز CreateNavigator(XmlNode) الطريقة ثم SelectNodes يمكن أن تعود فارغة.

وبالمثل ، إذا كنت استدعاء SelectNodes على EntityReference, DocumentType أو XmlDeclaration عقدة ستحصل على باطل وكذلك

باختصار ، من أجل تغطية 100 ٪ على XmlDocument أو XmlNode لم تخلق فقط عليك الاختبار على باطل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top