1. Обзор
В этом уроке мы обсудим сопоставители файлов Hamcrest.
Мы обсуждали Hamcrest Matchers в целом ранее в предыдущей статье « Тестирование с помощью Hamcrest ». В следующих разделах мы сосредоточимся только на File
Matchers.
2. Конфигурация Maven
Во-первых, нам нужно добавить следующую зависимость в наш pom.xml
:
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>java-hamcrest</artifactId>
<version>2.0.0.0</version>
<scope>test</scope>
</dependency>
Последнюю версию java-hamcrest
можно загрузить с Maven Central.
Давайте продолжим знакомство с сопоставителями файлов
Hamcrest.
3. Свойства файла
Hamcrest предоставляет несколько средств сопоставления, которые проверяют часто используемые свойства файлов .
Давайте посмотрим, как мы можем проверить имя файла
, используя aFileNamed()
в сочетании с String
Matcher:
@Test
public void whenVerifyingFileName_thenCorrect() {
File file = new File("src/test/resources/test1.in");
assertThat(file, aFileNamed(equalToIgnoringCase("test1.in")));
}
Мы также можем оценить путь к файлу — опять же в сочетании с String
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")));
}
Посмотрим также размер файла — в байтах:
@Test
public void whenVerifyingFileSize_thenCorrect() {
File file = new File("src/test/resources/test1.in");
assertThat(file, aFileWithSize(11));
assertThat(file, aFileWithSize(greaterThan(1L)));;
}
Наконец, мы можем проверить, доступен ли файл для
чтения и записи:
@Test
public void whenVerifyingFileIsReadableAndWritable_thenCorrect() {
File file = new File("src/test/resources/test1.in");
assertThat(file, aReadableFile());
assertThat(file, aWritableFile());
}
4. Существующий File Matcher
Если мы хотим убедиться, что файл
или каталог существует, мы можем использовать сопоставления anExistingFile()
или anExistingDirectory()
:
@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());
}
Также доступен сопоставитель anExistingFileOrDirectory()
, который объединяет их.
5. Вывод
В этой быстрой статье мы рассмотрели сопоставители файлов Hamcrest и их использование.
Как всегда, полный исходный код примеров доступен на GitHub .