PDF-Dokumente können seitenweise als gerenderte Bilder (PNG) verglichen werden:
<testcase name="haveSameAppearance_CompleteDocument"> <assertThat testDocument="test/test.pdf" masterDocument="master/master.pdf" > <haveSameAppearance on="EVERY_PAGE" /> </assertThat> </testcase>
Bestimmte Seiten können auf vielfältige Weise selektiert werden. Alle Möglichkeiten werden in Kapitel 13.2: „Seitenauswahl“ beschrieben.
Der Vergleich zweier Seiten kann auch auf einen Ausschnitt der Seite beschränkt werden:
<testcase name="haveSameAppearance_OnFirstPage_InClippingArea"> <assertThat testDocument="test/test.pdf" masterDocument="master/master.pdf" > <haveSameAppearance on="FIRST_PAGE"> <inClippingArea upperLeftX="50" upperLeftY="755" width="370" height="35" unit="POINTS" /> </haveSameAppearance> </assertThat> </testcase>
Die Werte für die Definition des Seitenausschnitts können in den
Einheiten POINTS
, MILLIMETER
,
CENTIMETER
, INCH
und DPI72
angegeben werden. Die Namen sind als Konstanten für das Attribut
unit=".."
definiert.
Wenn keine Einheit angegeben wird, werden die Werte als
MILLIMETER
interpretiert.
Wird bei einem Test mit gerenderten Seiten ein Fehler erkannt, erstellt PDFUnit einen Fehlerreport als Diff-Image. Hier ein Beispiel:
|
Die Überschrift dieses Diff-Bildes enthält den Namen des Tests und in der Fehlermeldung wird der Name des Diff-Bildes genannt. So ist eine Querverbindung zwischen Test und Fehlerbild gegeben.
|
Der Dateiname der Diff-Image-Datei wird folgendermaßen gebildet:
Er beginnt mit dem vollständigen Name der Test-PDF.
Falls die Testdatei ein Stream ist, beginnt der Name mit „_pdfunit_stream_“. Falls es sich um ein Byte-Array handelt, beginnt er mit „_pdfunit_bytearray_“. Beide Zeichenketten werden um eine Zufallszahl erweitert.
Der zweite Teil ist ein formatiertes Datum im Format „yyyyMMdd-HHmmssSSS“.
Der letzte Teil des Dateinamens ist die Zeichenkette „.out.png“.
Aufgrund der Standardkonfiguration wird ein Diff-Image für Testdateien
im selben Verzeichnis abgespeichert, in dem auch die Testdatei liegt.
Diff-Images für Streams und Byte-Arrays werden im Home-Verzeichnis des laufenden
Java-Prozess abgelegt. Sie können diese Einstellungen in der Datei
config.properties
ändern.
Um die Dokumente eines fehlgeschlagenen Tests weiter zu analysieren, hat sich das
Programm DiffPDF
bewährt. Informationen zu dieser Open-Source-Anwendung
von Mark Summerfield gibt es auf dessen Projekt-Site
http://soft.rubypdf.com/software/diffpdf.
Unter Linux kann das Programm beispielsweise mit
apt-get install diffpdf
installiert werden. Für Windows gibt es
eine „Portable Application“ unter
http://portableapps.com/apps/utilities/diffpdf_portable.