Hamcrest File Matchers

Hamcrest File Matchers

1. Überblick

In diesem Tutorial werden Hamcrest File Matchers erläutert.

Wir haben Hamcrest Matchers im Allgemeinen im vorherigen Artikel vonTesting with Hamcrestallgemein besprochen. In den nächsten Abschnitten konzentrieren wir uns nur aufFile Matcher.

2. Maven-Konfiguration

Zuerst müssen wir unserenpom.xml die folgende Abhängigkeit hinzufügen:


    org.hamcrest
    java-hamcrest
    2.0.0.0
    test

Die neueste Version vonjava-hamcrest kann von Maven Central heruntergeladen werden.

Fahren wir mit der Untersuchung der Matchers von HamcrestFilefort.

3. Dateieigenschaften

Hamcrest bietet mehrere Matcher, die die häufig verwendeten Eigenschaften vonFileüberprüfen.

Mal sehen, wie wir den Namen vonFilemitaFileNamed() in Kombination mit einemString Matcher überprüfen können:

@Test
public void whenVerifyingFileName_thenCorrect() {
    File file = new File("src/test/resources/test1.in");

    assertThat(file, aFileNamed(equalToIgnoringCase("test1.in")));
}

Wir können auch den Dateipfad bewerten - wiederum in Kombination mit einemString Matcher:

@Test
public void whenVerifyingFilePath_thenCorrect() {
    File file = new File("src/test/resources/test1.in");

    assertThat(file, aFileWithCanonicalPath(containsString("src/test/resources")));
    assertThat(file, aFileWithAbsolutePath(containsString("src/test/resources")));
}

Sehen wir uns auch die Größe einer Datei an - in Bytes:

@Test
public void whenVerifyingFileSize_thenCorrect() {
    File file = new File("src/test/resources/test1.in");

    assertThat(file, aFileWithSize(11));
    assertThat(file, aFileWithSize(greaterThan(1L)));;
}

Schließlich können wir überprüfen, ob einFile lesbar und beschreibbar ist:

@Test
public void whenVerifyingFileIsReadableAndWritable_thenCorrect() {
    File file = new File("src/test/resources/test1.in");

    assertThat(file, aReadableFile());
    assertThat(file, aWritableFile());
}

4. Vorhandener File Matcher

Wenn wir überprüfen möchten, ob einFile oder Verzeichnis vorhanden ist, können wir die MatcheranExistingFile() oderanExistingDirectory() verwenden:

@Test
public void whenVerifyingFileOrDirExist_thenCorrect() {
    File file = new File("src/test/resources/test1.in");
    File dir = new File("src/test/resources");

    assertThat(file, anExistingFile());
    assertThat(dir, anExistingDirectory());
    assertThat(file, anExistingFileOrDirectory());
    assertThat(dir, anExistingFileOrDirectory());
}

DeranExistingFileOrDirectory() Matcher, der beide kombiniert, ist ebenfalls verfügbar.

5. Fazit

In diesem kurzen Artikel haben wir uns mit Hamcrest File Matchers und deren Verwendung befasst.

Wie immer ist der vollständige Quellcode für die Beispieleover on GitHub verfügbar.