Hamcrest File Matchers

Hamcrest File Matchers

1. обзор

В этом руководстве мы обсудим средства поиска файлов Hamcrest.

Мы обсуждали в целом Hamcrest Matchers ранее в предыдущей статьеTesting with Hamcrest. В следующих разделах мы сосредоточимся только на сопоставителяхFile.

2. Конфигурация Maven

Во-первых, нам нужно добавить следующую зависимость к нашемуpom.xml:


    org.hamcrest
    java-hamcrest
    2.0.0.0
    test

Последнюю версиюjava-hamcrest можно загрузить с Maven Central.

Давайте продолжим изучение поисковиков HamcrestFile.

3. Свойства файла

Hamcrest предоставляет несколько сопоставителей, которые проверяют обычно используемые свойстваFile.

Давайте посмотрим, как мы можем проверить имяFile, используя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)));;
}

Наконец, мы можем проверить, доступен лиFile для чтения и записи:

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

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

4. Существующий сопоставитель файлов

Если мы хотим убедиться, чтоFile или каталог существует, мы можем использовать сопоставители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 и их использование.

Как всегда, доступен полный исходный код примеровover on GitHub.