Hamcrest File Matchers

Hamcrest File Matchers

1. Visão geral

Neste tutorial, discutiremos os Matchers de arquivo Hamcrest.

Discutimos os Matchers de Hamcrest em geral antes, no artigoTesting with Hamcrest anterior. Nas próximas seções, enfocaremos apenasFile Matchers.

2. Configuração do Maven

Primeiro, precisamos adicionar a seguinte dependência ao nossopom.xml:


    org.hamcrest
    java-hamcrest
    2.0.0.0
    test

A versão mais recente dejava-hamcrest pode ser baixada do Maven Central.

Vamos continuar explorando os Matchers HamcrestFile.

3. Propriedades do arquivo

O Hamcrest fornece vários combinadores que verificam as propriedadesFile comumente usadas.

Vamos ver como podemos verificar o nomeFile usandoaFileNamed() combinado com um MatcherString:

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

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

Também podemos avaliar o caminho do arquivo - novamente em combinação com um MatcherString:

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

Vejamos também o tamanho de um arquivo - em bytes:

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

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

Finalmente, podemos verificar se aFile é legível e gravável:

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

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

4. File Matcher existente

Se quisermos verificar se existe umFile ou diretório, podemos usar os 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());
}

O matcheranExistingFileOrDirectory() que combina os dois também está disponível.

5. Conclusão

Neste artigo rápido, examinamos o Hamcrest File Matchers e seu uso.

Como sempre, o código-fonte completo dos exemplos está disponívelover on GitHub.