Correspondants de fichiers Hamcrest

Hamcrest File Matchers

1. Vue d'ensemble

Dans ce didacticiel, nous aborderons les correspondeurs de fichiers Hamcrest.

Nous avons discuté des Matchers Hamcrest en général auparavant dans l'article précédent deTesting with Hamcrest. Dans les sections suivantes, nous nous concentrerons uniquement sur les correspondantsFile.

2. Configuration Maven

Tout d'abord, nous devons ajouter la dépendance suivante à nospom.xml:


    org.hamcrest
    java-hamcrest
    2.0.0.0
    test

La dernière version dejava-hamcrest peut être téléchargée depuis Maven Central.

Continuons en explorant les Matchers HamcrestFile.

3. Propriétés du fichier

Hamcrest fournit plusieurs matchers qui vérifient les propriétésFile couramment utilisées.

Voyons comment nous pouvons vérifier le nom deFile en utilisantaFileNamed() combiné avec un MatcherString:

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

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

Nous pouvons également évaluer le chemin du fichier - encore une fois en combinaison avec unString 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")));
}

Voyons également la taille d’un fichier - en octets:

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

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

Enfin, nous pouvons vérifier si unFile est lisible et inscriptible:

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

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

4. Correspondance de fichiers existante

Si nous voulons vérifier qu'unFile ou un répertoire existe, nous pouvons utiliser les matchersanExistingFile() ouanExistingDirectory():

@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());
}

Le matcheranExistingFileOrDirectory() qui combine les deux est également disponible.

5. Conclusion

Dans cet article rapide, nous avons examiné les fichiers de correspondance de fichiers Hamcrest et leur utilisation.

Comme toujours, le code source complet des exemples est disponibleover on GitHub.