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.