Ein erwarteter Text und der tatsächliche Text einer PDF-Seite können auf folgende Art miteinander verglichen werden:
// Methods with configurable whitespace processing. Default is NORMALIZE: .containing(searchToken ) .containing(searchToken , WhitespaceProcessing) .containing(String[] searchTokens ) .containing(String[] searchTokens , WhitespaceProcessing) .endingWith(searchToken ) .endingWith(searchToken , WhitespaceProcessing) .equalsTo(searchToken ) .equalsTo(searchToken , WhitespaceProcessing) .first(searchToken ) .first(searchToken , WhitespaceProcessing) .notContaining(searchToken ) .notContaining(searchToken , WhitespaceProcessing) .notContaining(String[] searchTokens ) .notContaining(String[] searchTokens, WhitespaceProcessing) .startingWith(searchToken ) .startingWith(searchToken , WhitespaceProcessing) .then(searchToken) // Methods with whitespace processing NORMALIZE: .notEndingWith(searchToken) .notStartingWith(searchToken) // Methods without whitespace processing: .matchingRegex(regex) .notMatchingRegex(regex)
Bei diesen Methoden werden die Whitespaces „normalisiert“. Das heißt, Leerzeichen am Anfang und Ende werden entfernt und alle Whitespaces innerhalb eines Textes werden auf ein Leerzeichen reduziert. |
|
Die Behandlung von Whitespaces wird über den zweiten Parameter gesteuert. Es stehen
die Konstanten |
|
Die Whitespace-Behandlung der Methoden |
Vergleiche mit Regulären Ausdrücken folgen den Regeln und Möglichkeiten der Klasse
java.util.regex.Pattern
:
// Using regular expression to compare page content @Test public void hasText_MatchingRegex() throws Exception { String filename = "documentUnderTest.pdf"; AssertThat.document(filename) .restrictedTo(FIRST_PAGE) .hasText() .matchingRegex(".*[Cc]ontent.*") ; }
Die Methoden containing(String[])
und notContaining(String[])
können mit mehreren
Suchbegriffen aufgerufen werden. Ein Test mit containing(String[])
gilt als erfolgreich,
wenn jeder Suchbegriff auf jeder ausgewählten Seiten auftaucht. Ein Test mit notContaining(String[])
ist erfolgreich, wenn alle Suchbegriffe auf allen ausgewählten Seite fehlen:
@Test public void hasText_NotContaining_MultipleSearchTokens() throws Exception { String filename = "documentUnderTest.pdf"; AssertThat.document(filename) .restrictedTo(FIRST_PAGE) .hasText() .notContaining("even pagenumber", "Page #2") ; }