XMLUnit für C ++

8

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.

    
walrii 05.02.2009, 16:32
quelle

6 Antworten

1

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.

    
Jeff White 11.01.2013 16:58
quelle
0

Ich mag Ссылка

Es:

  • ist stabil
  • ist extrem schnell
  • hat eine großartige Dokumentation und einen Beispielcode
  • ist lizenziert unter der MIT-Lizenz
  • ist sehr STL freundlich
  • ist immer noch ein aktives Projekt
  • unterstützt xpath
  • sehr gut
Homer6 31.07.2012 23:30
quelle
-1

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

    
Gal Goldman 16.02.2009 16:11
quelle
-1

Xerces bei Ссылка ich ziemlich voll ausgestattet, hat eine C ++ - Schnittstelle und produziert gute Fehlermeldungen, die mehrere andere XML Parser funktionieren nicht so gut. Nachdem das gesagt wurde, ist es ziemlich groß & amp; Ich habe meinen eigenen Wrapper rund um den C-Parser Expat verwendet.

    
anon 16.02.2009 16:17
quelle
-1

Ich verwende derzeit libxml ++ für ein persönliches Projekt von mir.

    
MighMoS 19.02.2009 01:45
quelle
-1

Ich benutze Boost property_tree für xml, einfach zu bedienen, ziemlich robust und funktioniert gut mit Boost Unit Test Framework.

    
clanmjc 31.07.2012 17:48
quelle

Tags und Links