ハムクレストファイルマッチャー
1. 概要
このチュートリアルでは、Hamcrestファイルマッチャーについて説明します。
前回のHamcrestの記事で、HamcrestMatchersについて一般的に説明しました。 次のセクションでは、ファイルマッチャーのみに焦点を当てます。
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 の最新バージョンは、MavenCentralからダウンロードできます。
ハムクレストファイルマッチャーの探索を続けましょう。
3. ファイルのプロパティ
Hamcrestは、一般的に使用されるFileプロパティを検証するいくつかのマッチャーを提供します。
aFileNamed()と String マッチャーを組み合わせて、File名を確認する方法を見てみましょう。
@Test
public void whenVerifyingFileName_thenCorrect() {
File file = new File("src/test/resources/test1.in");
assertThat(file, aFileNamed(equalToIgnoringCase("test1.in")));
}
また、ファイルパスを評価することもできます。これもStringマッチャーと組み合わせて使用します。
@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 またはディレクトリが存在することを確認する場合は、 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()マッチャーも利用できます。
5. 結論
この簡単な記事では、HamcrestFileMatchersとその使用法について説明しました。
いつものように、例の完全なソースコードは、GitHubでから入手できます。