Angenommen, Sie haben ein Projekt, das PDF-Dokumente erzeugt und möchten sicherstellen, dass die beteiligten Programme das tun, was sie sollen. Weiter angenommen, ein Test-Dokument soll genau eine Seite umfassen sowie die Grußformel „Vielen Dank für die Nutzung unserer Serviceleistungen“ und eine Rechnungssumme von „30,34 Euro“ enthalten. Dann könnten Sie diese Anforderungen folgendermaßen testen:
@Test
public void hasOnePage() throws Exception {
String filename = "quickstart/quickstartDemo_de.pdf";
AssertThat.document(filename)
.hasNumberOfPages(1)
;
}
@Test
public void hasExpectedRegards() throws Exception {
String filename = "quickstart/quickstartDemo_de.pdf";
String expectedRegards = "Vielen Dank für die Nutzung unserer Serviceleistungen";
AssertThat.document(filename)
.restrictedTo(LAST_PAGE)
.hasText()
.containing(expectedRegards)
;
}
@Test
public void hasExpectedCharge() throws Exception {
String filename = "quickstart/quickstartDemo_de.pdf";
int leftX = 172; // in millimeter
int upperY = 178;
int width = 20;
int height = 9;
PageRegion regionInvoiceTotal = new PageRegion(leftX, upperY, width, height);
AssertThat.document(filename)
.restrictedTo(FIRST_PAGE)
.restrictedTo(regionInvoiceTotal)
.hasText()
.containing("30,34 Euro") // This is really expected.
.containing("29,89 Euro") // Let's see an error message :-)
;
}
Der typische JUnit-Report zeigt entweder den Erfolg oder eine aussagekräftige Fehlermeldung:
So einfach geht's. Die folgenden Kapitel beschreiben den Funktionsumfang, typische Testfälle und Probleme beim Umgang mit PDF-Dokumenten.