Frage

Ist es möglich für SelectNodes() rief an XmlDocument null zurückgeben?

Mein Dilemma besteht darin, dass ich versuche, eine 100-prozentige Abdeckung des Unit-Test-Codes zu erreichen.ReSharper sagt mir, dass ich mich vor einer Null-Rückgabe von schützen muss SelectNodes() Methode, aber ich sehe keine Möglichkeit, dass ein XmlDocument null zurückgeben kann (und daher keine Möglichkeit, meine Schutzklausel zu testen und eine 100 %ige Unit-Test-Abdeckung zu erreichen!)

War es hilfreich?

Lösung

Ist es notwendig, 100% Codeabdeckung zu erreichen? Tatsächlich ist es sogar möglich, unter normalen (das heißt steuerbar, prüfbar) Umstände?

Wir finden häufig, dass mit „syntaktischer Zucker“ Konstruktionen wie der using {} Block gibt (wahrscheinlich finally {} oder catch {} Blöcke) erstellt „versteckt“ Codepfade sind, die (wie eine kaputte Steckdose nicht, es sei denn einige Umgebungsbedingungen ausgeübt werden oder kaputte Platte) in der Quere kommt.

Andere Tipps

bei Reflector Sehen, die Select () -Methode auf XmlDocument der Basisklasse, XmlNode kann null zurück, wenn der Versuch, einen Navigator zu erstellen null zurückgibt. Create () ist ziemlich komplex und wird in der Tat unter einigen Umständen null zurück. Unter diesen Umstände erscheinen um ein fehlerhaftes XML-Dokument zu sein - so gibt es Ihren Testfall für das Scheitern von Select ()

.

Wenn Sie Select auf der XmlDocument fordern selbst, und es ist wirklich ein XmlDocument und nicht eine abgeleitete Klasse als Select nicht null zurück.

Wenn Sie eine abgeleitete Klasse erstellen und die Createnavigator (XmlNode) Methode überschreiben, dann könnte Select null zurück.

Und falls Sie Select auf einem EntityReference, Document oder XmlDeclaration Knoten aufrufen, werden Sie null als gut

Kurz gesagt, für 100% Abdeckung auf einem XmlDocument oder XmlNode Sie nicht nur selbst erstellt haben, müssen Sie für null testen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top