Zurück |  | Weiter

## 4.9. Formularfelder vergleichen

### Anzahl

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>

### Feldnamen

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>

### Feldeigenschaften

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“.

### Feldinhalte

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“.

### Kombination mehrerer Tests

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>

Zurück | Nach oben | Weiter
4.8. Formate vergleichen | Zum Anfang | 4.10. JavaScript vergleichen