Weiß jemand, ob es etwas wie XMLUnit für C ++ gibt? Ich suche nach einer einfachen Möglichkeit, Knoten, Werte usw. in einer XML-Ausgabe zu überprüfen. Wir verwenden Google Test in Visual Studio, aber ich nehme an, dass jede Bibliothek, die die Arbeit erleichtert, ausreicht.
Ich verwende Xerces als XML-Parser, aber XMLUnit ( Ссылка ) verfügt über einige Funktionen, die über den XML-Parser verteilt sind und sehr nützlich sind für Unit-Tests. Zum Beispiel, verwendet XPath Ausdrücke, Funktionen, um zwei "ähnliche" XMLs, etc. zu vergleichen.
Ich habe in der Vergangenheit eine Kombination aus Xerces und CPPUnit verwendet. In meinen Testfällen würde ich ein DOM-Objekt mit der Xerces-API in der Funktion setUp () erstellen. Dieses DOM würde meine erwarteten Ergebnisse darstellen. Im Testfall selbst würde ich dann die XML-Datei lesen und die zu testende Klasse würde ein DOM-Objekt auffüllen, das den Inhalt der Datei darstellt. Um die Gleichheit zu überprüfen, würde ich die beiden DOM-Bäume über die Xerces-API (DOMTreeWalker) durchlaufen und CPPUnit-Assertionen verwenden, während ich den Inhalt der DOM-Knoten verglich. Es war ein bisschen langweilig, aber es gab zu der Zeit keine Frameworks, die XmlUnit nachahmen konnten. Ich würde mir vorstellen, dass Google Test genau so gut funktionieren würde wie CPPUnit, um diese Aufgabe zu erfüllen.
Die Xerces-API unterstützt einige XPath-Ausdrücke:
Zur Validierung müssten Sie einen Fehlerhandler wie hier erwähnt einrichten und in Ihren Testfall integrieren:
Dokument in Xerces C ++ validieren
Für die XSLT-Transformationsprüfung müssen Sie Xalan verwenden. Es funktioniert mit Xerces, so dass ich keine größeren Schwierigkeiten erwarten würde:
Ich konnte keine offensichtlichen Produkte finden, die XMLUnit-ähnliche Operationen in C ++ verpacken. Also die Antwort ist, ich denke, du musst deine eigenen rollen. Viel Glück.
Sie können das tinyxml-Paket hier verwenden: tinyxml
Ich arbeite damit und es ist ziemlich freundlich und fehlerfrei.
Es ist eine XML-Behandlung. Ich denke, es wurde nicht für Komponententests entwickelt, aber Sie können damit Ihre XML-Dateien überprüfen / testen. Es lädt wie erwartet die XML in ein DOM-Objekt und liefert eine nette API, die auf den Knoten ausgeführt wird.
Gal
Tags und Links unit-testing c++ xml xmlunit