1概要

このチュートリアルでは、Hamcrest File Matchersについて説明します。

以前のリンクで、Hamcrest Matchersについて一般的に説明しました。/java-junit-hamcrest-guide[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

File

Matchersの調査を続けましょう。


3ファイルのプロパティ

Hamcrestは、よく使われる

File

プロパティを検証するいくつかのマッチャーを提供します。


aFileNamed()



String

Matcherを組み合わせて

File

名を検証する方法を見てみましょう。

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

この2つを組み合わせた

anExistingFileOrDirectory()

matcherも利用可能です。


5結論

このクイック記事では、Hamcrest File Matchersとその使用方法について説明しました。

いつものように、例の完全なソースコードはhttps://github.com/eugenp/tutorials/tree/master/guava[GitHubに載っています]から入手できます。