Zurück |  | Weiter

## 4.10. Layout vergleichen (gerenderte Seiten)

PDF-Dokumente können seitenweise als gerenderte Bilder (PNG) verglichen werden:

    @Test
    public void haveSameAppearanceCompleteDocument() throws Exception {
      String filenameTest = "documentUnderTest.pdf";
      String filenameReference = "reference.pdf";

      AssertThat.document(filenameTest)
                .and(filenameReference)
                .restrictedTo(EVERY_PAGE)
                .haveSameAppearance()
      ;
    }

Ein Test kann auf vielfältige Weise auf individuelle Seiten eingeschränkt 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:

    @Test
    public void haveSameAppearanceInPageRegion() throws Exception {
      String filenameTest = "documentUnderTest.pdf";
      String filenameReference = "reference.pdf";

      int leftX  =   0;
      int upperY =   0;
      int width  = 210;
      int height =  50;
      PageRegion pageRegion = new PageRegion(leftX, upperY, width, height);

      AssertThat.document(filenameTest)
                .and(filenameMaster)
                .restrictedTo(EVERY_PAGE)
                .restrictedTo(pageRegion)
                .haveSameAppearance()
      ;
    }

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 enthält:

- den vollständigen Name der Testdatei,

- ein formatiertes Datum im Format 'yyyyMMdd-HHmmssSSS'

- und als Suffix die Zeichenkette '.out.png'.

Der Ort für die Ablage der Diff-Images wird in der Konfigurationsdatei `pdfunit.config` über den Schlüssel `output.path.diffimages` bestimmt.

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.9. JavaScript vergleichen | Zum Anfang | 4.11. Lesezeichen (Bookmarks) vergleichen