2017-09-19 1 views
0

Ein Kollege und ich hatten eine interessante Debatte darüber, ob XML-Fragmente, die in Komponententests verwendet werden, in der Testdatei enthalten sein sollten oder externalisiert werden sollten. In einigen der Tests haben wir vollständige XML-Dateien, die als Eingabe verwendet werden, während in anderen wir Fragmente verwenden, um Teile der Verarbeitung zu testen, Fragmente, die 5 Zeilen mehr oder weniger lang sein können.Wann sollte ich XML-Fragmente in meinen Komponententests externalisieren?

Mein Kollege hat sich dafür ausgesprochen, das XML dort zu halten, damit es Seite an Seite mit dem Testcode steht, der davon abhängig ist. Ich persönlich bin gegen zwei Hauptaspekte: die Unbeholfenheit, die sich aus der Einbettung von XML in den Quellcode ergibt (witzige Formatierung, mögliche Newline-Probleme, Zeichen entkommen, etc.) und die vertikale Auswirkung großer Mengen von XML auf die Quelldatei.

Ich bin gespannt, ob es konkrete Forschung über die Vorteile der Minimierung der vertikalen Nutzung in der Quellcodeverwaltung gibt oder ob es starke Argumente für beide Ansätze gibt, die nicht nur auf Meinungen basieren. Ich bin ein starker IDE-Benutzer (IntelliJ), also gibt es Probleme für mehr CLI-orientierte Benutzer, die ich nicht berücksichtigt habe?

Antwort

1

Es gibt keine harten Regeln, aber das Fehlen roher Zeichenketten in Java lässt es hässlich aussehen. Auf der anderen Seite würde ich externe XML-Dateien nur für Regressions- und Integrationstests und Java-Java- Code (mit oder ohne Builder) für alle anderen Anwendungsfälle verwenden, es sei denn, Sie testen XML-Parsing. Es ist einfacher, zwischen Testfällen zu verwenden und erfordert weniger Änderungen im Falle eines Refactorings - IDE wird erforderliche Änderungen im Code vornehmen, aber nicht in XML-Dateien/Strings.

Verwandte Themen