Zurück |  | Weiter

## 4.11. Layout vergleichen (gerenderte Seiten)

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.

Zurück | Nach oben | Weiter
4.10. JavaScript vergleichen | Zum Anfang | 4.12. Lesezeichen (Bookmarks) vergleichen