3.25. Seitenzahlen als Testziel

Überblick

Es ist manchmal sinnvoll, zu prüfen, ob ein erzeugtes PDF-Dokument genau eine Seite hat. Oder Sie müssen sicherstellen, dass das Dokument weniger als 6 Seiten umfasst, weil sonst ein höheres Briefporto anfällt. PDFUnit bietet deshalb Testmethoden an, die sich auf die Anzahl von Seiten beziehen:

// Method for tests with pages:
.hasNumberOfPages(..) 
.hasLessPagesThan(..) 
.hasMorePagesThan(..)

Beispiele

Eine konkrete Seitenanzahl wird folgendermaßen überprüft:

@Test
public void hasNumberOfPages() throws Exception {
  String filename = "documentUnderTest.pdf";
  
  AssertThat.document(filename)
            .hasNumberOfPages(1)
  ;
}

Es sind aber auch Tests mit minimaler oder maximaler Seitenzahl möglich:

@Test
public void hasLessPagesThan() throws Exception {
  String filename = "documentUnderTest.pdf";
  int upperLimitExclusive = 6; // The document has 5 pages
  
  AssertThat.document(filename)
            .hasLessPagesThan(upperLimitExclusive)  1
  ;
}
@Test
public void hasMorePagesThan() throws Exception {
  String filename = "documentUnderTest.pdf";
  int lowerLimitExclusive = 2; // The document has 5 pages
  
  AssertThat.document(filename)
            .hasMorePagesThan(lowerLimitExclusive)  1
  ;
}

1 1

Die Werte für Ober- und Untergrenze gelten exklusiv.

Die Methoden können verkettet werden:

@Test
public void hasNumberOfPages_InRange() throws Exception {
  String filename = "documentUnderTest.pdf";
  // The current document has 5 pages
  int lowerLimit_2 = 2;  // the limit is exclusive
  int upperLimit_8 = 8;  // the limit is exclusive
  
  AssertThat.document(filename)
            .hasMorePagesThan(lowerLimit_2)
            .hasLessPagesThan(upperLimit_8)
  ;
}

Verzichten Sie nicht auf Tests mit Seitenzahlen weil Sie denken, sie seien zu einfach. Erfahrungsgemäß finden Sie im Umfeld eines einfachen Tests überraschende Dinge, die Sie ohne den Test nicht gefunden hätten.