Der einfachste vergleichende Test für Felder ist der, festzustellen, dass beide Dokumente gleich viele Felder enthalten:
<testcase name="haveSameNumberOfFields"> <assertThat testDocument="test/test.pdf" masterDocument="master/master.pdf" > <haveSameNumberOfFields /> </assertThat> </testcase>
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:
<testcase name="haveSameFields_ByName"> <assertThat testDocument="test/test.pdf" masterDocument="master/master.pdf" > <haveSameFields by="NAME" /> </assertThat> </testcase>
Wenn über die Namen von Feldern hinaus auch die weiteren Eigenschaften
verglichen werden sollen, muss das Tag <haveSameFields />
mit dem Attribut by="PROPERTIES"
verwendet
werden:
<testcase name="haveSameFields_ByProperties"> <assertThat testDocument="test/test.pdf" masterDocument="master/master.pdf" > <haveSameFields by="PROPERTIES" /> </assertThat> </testcase>
Feldeigenschaften können mit dem Hilfsprogramm ExtractFieldsInfo
in eine XML-Datei überführt und analysiert werden, siehe Kapitel
9.4: „Feldeigenschaften nach XML extrahieren“.
Und als Letztes können mit dem Tag <haveSameFields />
und dem Attribut by="VALUE"
auch die Inhalte
der Felder verglichen werden.
Gleichnamige Felder müssen gleiche Inhalte haben, sonst schlägt der Test fehl:
<testcase name="haveSameFields_ByValues"> <assertThat testDocument="test/test.pdf" masterDocument="master/master.pdf" > <haveSameFields by="VALUE" /> </assertThat> </testcase>
Whitespaces werden für den Vergleich „normalisiert“, siehe 13.4: „Behandlung von Whitespaces“. |
In einem Testfall können mehrere Vergleiche durchgeführt werden, allerdings gibt es dann Probleme mit dem Namen des Tests:
<testcase name="compareManyItems"> <assertThat testDocument="test/test.pdf" masterDocument="master/master.pdf" > <haveSameFields by="PROPERTIES" /> <haveSameFields by="VALUE" /> <haveSameFonts /> <haveSameTitle /> <haveSameAuthor /> </assertThat> </testcase>