Der einfachste vergleichende Test für Felder ist der, festzustellen, dass beide Dokumente gleich viele Felder enthalten:
@Test public void haveSameNumberOfFields() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; AssertThat.document(filenameTest) .and(filenameReference) .haveSameNumberOfFields() ; }
Beim nächst größeren Test müssen neben der Anzahl auch die Namen der Felder in jedem PDF-Dokument gleich sein. Diese Aussage wird folgendermaßen getestet:
@Test public void haveSameFields_ByName() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; AssertThat.document(filenameTest) .and(filenameReference) .haveSameFieldsByName() ; }
Wenn über die Namen von Feldern hinaus auch die Inhalte der Felder verglichen werden
sollen, muss die Methode haveSameFieldsByValue()
verwendet werden.
Gleichnamige Felder müssen gleiche Inhalte haben, sonst schlägt der Test fehl:
@Test public void haveSameFields_ByValue() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; AssertThat.document(filenameTest) .and(filenameReference) .haveSameFieldsByValue() ; }
Whitespaces werden für den Vergleich „normalisiert“, siehe 13.5: „Behandlung von Whitespaces“. |
Unterschiedliche Vergleiche können in einem Testfall verkettet werden:
@Test public void compareManyItems() throws Exception { String filenameTest = "documentUnderTest.pdf"; String filenameReference = "reference.pdf"; AssertThat.document(filenameTest) .and(filenameReference) .haveSameAppearance() .haveSameText ; }