.net Xml-Vergleich für UnitTesting

8

Ich habe einige Komponententests, bei denen ich sicherstellen muss, dass von einer Methode generiertes XML die gleichen Elemente / Werte wie ein erwartetes Xml-Dokument enthält.

Ich habe xmlunit in Java verwendet, und obwohl sie eine .net-Version haben, scheint sie keine Namespaces zu unterstützen. Gibt es dafür Alternativen in .net?

Solange ich nur 2 Xml-Strings vergleichen kann und ein True / False-Ergebnis bekomme, um mir zu sagen, ob sie übereinstimmen, soweit die Daten betroffen sind, bin ich glücklich ...

    
SomeNinjectGuy 05.05.2011, 12:15
quelle

4 Antworten

7

Normalerweise habe ich XNode.DeepEquals gefunden ist ausreichend für meine Bedürfnisse. Es ist Teil der BCL, daher ist kein Download erforderlich.

    
Mark Seemann 05.05.2011 12:33
quelle
3

Versuchen Sie Microsoft.XmlDiffPatch:

%Vor%     
Nestor 05.05.2011 12:19
quelle
1

Was Sie bei MSXML XMLDiff beachten sollten, ist Folgendes: Wenn Sie sehr große XML-Dokumente vergleichen, stellen Sie sicher, dass Ihr XMLDiff.Algorithm nicht auf "Precise" eingestellt ist oder dass Ihnen möglicherweise nicht genügend Arbeitsspeicher zur Verfügung steht. Standardmäßig ist dies auf "Auto" eingestellt, was eine sichere Wahl ist, da die API basierend auf der Dateigröße, der Anzahl der erkannten Unterschiede und anderen Faktoren entscheidet, ob Precise oder Fast verwendet werden soll. Hier ist eine gute Lektüre für die eher technisch veranlagten:

Ссылка

    
Noonway 08.11.2011 18:52
quelle
0

Ich habe die XMLDiff von MS benutzt, aber ich bevorzuge die Verwendung von Beyond Compare 3's, da es eine bessere GUI und Batch-Verarbeitung bietet (doesst aber .NET API).

Für Ihre Tests verwenden Sie XNode.DeepEquals oder InnerXML, um die zeichenkettenbasierte Darstellung zu vergleichen

    
Bek Raupov 05.05.2011 13:12
quelle

Tags und Links