Hamcrest Collectionsクックブック

Hamcrest Collectionsクックブック

1. 前書き

このクックブックは、make use of Hamcrest matchers to work with and test collectionsの方法を示しています。

format of the cookbook is example focusedと実用的–余分な詳細や説明は必要ありません。

最初に、次に使用するユーティリティAPIのほとんどをカバーするために、簡単な静的インポートを実行しましょう。

import static org.hamcrest.Matchers.*;

参考文献:

Hamcrest共通コアマッチャー

HamcrestライブラリーのCoreMatchersクラスのさまざまなメソッドを調べてください。

ハムクレストビーンマッチャー

Hamcrest Beanマッチャーについて学習します。これは、単体テストを作成するときに頻繁に使用される機能であるアサーションの効果的な方法を提供するツールです。

Hamcrestを使用したテスト

この非常に実用的なチュートリアルでは、Hamcrest APIの使用と、ソフトウェアのより簡潔で直感的な単体テストの作成に焦点を当てています。

2. クックブック

単一の要素がコレクションに含まれているかどうかを確認します

List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, hasItem("cd"));
assertThat(collection, not(hasItem("zz")));

複数の要素がコレクションに含まれているかどうかを確認します

List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, hasItems("cd", "ef"));

*コレクション内のすべての要素を確認してください*

–厳密な順序で

List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, contains("ab", "cd", "ef"));

–任意の注文で

List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, containsInAnyOrder("cd", "ab", "ef"));

コレクションが空かどうかを確認します

List collection = Lists.newArrayList();
assertThat(collection, empty());

配列が空かどうかを確認します

String[] array = new String[] { "ab" };
assertThat(array, not(emptyArray()));

マップが空かどうかを確認します

Map collection = Maps.newHashMap();
assertThat(collection, equalTo(Collections.EMPTY_MAP));

Iterableが空かどうかを確認します

Iterable collection = Lists.newArrayList();
assertThat(collection, emptyIterable());

コレクションのサイズを確認する

List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, hasSize(3));

反復可能なサイズの確認

Iterable collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, Matchers. iterableWithSize(3));

すべてのアイテムの状態を確認してください

List collection = Lists.newArrayList(15, 20, 25, 30);
assertThat(collection, everyItem(greaterThan(10)));

3. 結論

この形式は実験です。特定のトピックに関する社内開発クックブックの一部を公開しています。Google Guavaと現在はHamcrestです。 目標は、この情報をオンラインですぐに利用できるようにし、新しい有用な例を実行するたびに追加することです。

これらすべての例とコードスニペットcan be found over on GitHubの実装–これはMavenベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。