Frage

Ich schreibe ein paar Klassen, die eine XML -Datei generieren. (Details im Moment wahrscheinlich nicht wichtig).

Ich frage mich, die beste Teststrategie ist.

  • Ich möchte den XML-Generierungscode nicht neu schreiben, um die Ausgabe zu vergleichen, wenn ich die Datei an die Festplatte schreiben und an bestimmten Meilensteinen vergleichen konnte Jahre)
  • Ich bin mehr daran interessiert, das Verhalten der Architektur als die Getter & Setzer zu testen

Optionen, die mir in den Sinn kommen:

  • Wiederaufbau der XML -Datei in der Testumgebung und Vergleich der String -Darstellungen
  • manuell überprüft das Ergebnis (Schreiben in Datei usw.)
  • Wiederaufbau der XML-Datei in Speicher in der Testumgebung und Vergleich der In-Memory-Elemente.

Virtueller Bonus Wenn Sie Bibliotheken für C ++ und/oder Google -Test kennen.

Ideen?

War es hilfreich?

Lösung

Haben Sie in Betracht gezogen, XSDs zu verwenden und Ihre XML für das XSD zu validieren? Sie haben nicht erwähnt, ob es sich um Inhalt oder Struktur handelte, für die Sie getestet wurden (wahrscheinlich beide).
Wenn es validiert, wird die Struktur des XML der erforderlichen Struktur entspricht.

Andere Tipps

In der Vergangenheit habe ich mich auf diese beiden Arten nähert:

Vergleichen Sie die XML -Datei mit dem Ergebnis, das in der Testdatei als Zeichenfolge gespeichert ist. Dies ist einfach zu implementieren, und wenn Sie nicht zu Testvariationen der XML -Datei für Testzwecke generieren möchten, funktioniert die String -Vergleichsmethode einwandfrei.

In dem Fall, in dem Sie einen XML -Dateiwriter und Leser haben, können Sie das Original mit dem Round Trip -Ergebnis vergleichen.

Ich stimme Ihnen zu, dass Sie die Logik nicht replizieren sollten, um die Datei in der Testfunktion zu generieren, nur zum Testenzweck. Außerdem würde ich versuchen, die Notwendigkeit zu vermeiden, in das Dateisystem zu schreiben - dies ist eine unnötige Abhängigkeit vom Dateisystem und würde wahrscheinlich zu langsameren laufenden Tests führen.

Möglicherweise verwenden Sie die XML -Einheit: http://xmlunit.sourceforge.net. Es bietet JUNIT -Erweiterungsklassen, mit denen die Gleichheit von XML -Dateien geltend gemacht werden kann.

Sie können ein XML -Diff -Tool in Betracht ziehen. Auf MSDN gibt es eine kostenlose: XML Diff- und Patch -Tool.

Ich sehe, Sie suchen nach C ++ - Tools. In diesem Fall, libxmldiff Könnte besser geeignet sein.

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