Hamcrestファイルマッチャー
1. 概要
このチュートリアルでは、ハムクレストファイルマッチャーについて説明します。
前回のTesting with Hamcrestの記事で、ハムクレストマッチャー全般について説明しました。 次のセクションでは、Fileマッチャーのみに焦点を当てます。
2. Mavenの構成
まず、pom.xmlに次の依存関係を追加する必要があります。
org.hamcrest
java-hamcrest
2.0.0.0
test
java-hamcrestの最新バージョンは、MavenCentralからダウンロードできます。
ハムクレストFileマッチャーの探索を続けましょう。
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)));;
}
最後に、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()マッチャーも利用できます。
5. 結論
この簡単な記事では、Hamcrest File Matchersとその使用について説明しました。
いつものように、例の完全なソースコードはover on GitHubで入手できます。