Перейти к основному содержимому

Сопоставители файлов Hamcrest

· 2 мин. чтения

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 .