3.11. Excel-Dateien für Validierungsregeln

Überblick

Es mag ungewöhnlich erscheinen, Validierungsregeln in Excel abzulegen und diese in automatisierten Test zu verwenden. Der Grund, es dennoch zu tun, ist aber, auch Nicht-Programmierer in die Lage zu versetzen, PDF-Dokumente zu testen oder zumindestens die Tests zu erfassen, die dann mit Hilfe von Entwicklern ausgeführt werden.

Die Excel-Dateien können übrigens unverändert auch innerhalb des PDFUnit-Monitors verwendet werden, der ebenfalls für die Zielgruppe der Nicht-Programmierer gebaut wurde. Für den Monitor existiert eine separate Dokumentation unter http://www.pdfunit.com/de/download/index.html. zur Verfügung. Eine kurze Beschreibung liefert aber auch Kapitel 8: „PDFUnit-Monitor“.

Eine detailierte Beschreibung des Aufbaus einer Excel-Datei und über die über diesen Weg verfügbare Funktionalität, liefert Kapitel 10: „Validierungsregeln in Excel-Dateien“. Lesen Sie das Kapitel ruhig später. Für das Verständnis, wie solche Excel-Dateien in programmierten Tests eingebunden werden, sind keine Kenntnisse über den Aufbau der Excel-Datei notwendig.

Es gibt nur eine Methode, mit der Excel-Dateien in Tests eingebunden werden:

// Validation method, using Excel-based constraints:

.compliesWith().constraints(excelRules)

Diese Methode kann auf ein PDF-Dokument, mehrere Dokumente oder alle Dokumente in einem Verzeichnis angewendet werden:

// Validation of one, many or all PDF documents:

AssertThat.document(filename)
          .compliesWith()
          .constraints(excelRules)

AssertThat.eachDocument()
          .inFolder(folder)
          .compliesWith()
          .constraints(excelRules)

AssertThat.eachDocument(files)
          .compliesWith()
          .constraints(excelRules)

Beispiel

Im folgenden Beispiel wird eine PDF-Datei gegen die Regeln von DIN 5008 geprüft, deren unternehmensspezifische Umsetzung in der Excel-Datei 'din5008-formA_letter-portrait.xls' liegen:

@Test
public void singleDocumentCompliesWithExcelRules() throws Exception {
  String filename = "documentUnderTest.pdf";
  String rulesAsExcelFile = PATH_TO_RULES + "din5008-formA_letter-portrait.xls";
  PDFValidationConstraints excelRules = new PDFValidationConstraints(rulesAsExcelFile);
  
  AssertThat.document(filename)
            .compliesWith()
            .constraints(excelRules)
  ;
}

In einer Fehlermeldung erscheinen alle Verstöße gegen die definierten Regeln. Ein Test bricht also nicht mit dem ersten Regelverstoß ab.

Der Aufbau der Excel-Datei wird in Kapitel 10: „Validierungsregeln in Excel-Dateien“ beschrieben.