[解決済み] Iterable が特定のプロパティを持つ要素を含むことを保証するにはどうすればよいですか?
2022-06-20 13:56:45
質問
このシグネチャを持つメソッドをユニットテストしたいと仮定します。
List<MyItem> getMyItems();
仮定
MyItem
は多くのプロパティを持つPojoで、そのうちの1つが
"name"
を介してアクセスされます。
getName()
.
私が気にするのは
List<MyItem>
であるか、あるいは
Iterable
を含む場合、2つの
MyItem
インスタンスがあり、その
"name"
プロパティは値
"foo"
と
"bar"
. 他のプロパティが一致しなくても、このテストの目的からすればどうでもいいことです。 名前が一致すれば、テストは成功です。
可能であれば、ワンライナーで済ませたいのですが。以下は、私がやりたいことのいくつかの "擬似シンタックス"です。
assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"});
Hamcrestはこの種のものに適しているのでしょうか? もしそうなら、上記の私の擬似構文のハムクレストバージョンは正確に何でしょうか?
どのように解決するのですか?
ご指摘いただいた@Razvanさん、ありがとうございました。 一行で済ませることができ、無事Hamcrest 1.3のimportを追い詰めることができました。
のインポートを取得しました。
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.beans.HasPropertyWithValue.hasProperty;
のコードです。
assertThat( myClass.getMyItems(), contains(
hasProperty("name", is("foo")),
hasProperty("name", is("bar"))
));
関連
-
javaの実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] 特定のUnicode文字を含むコメントでのJavaコードの実行が許可されているのはなぜですか?
-
[解決済み] 整数の左側にゼロを埋め込むにはどうしたらいいですか?
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] 例外がスローされたことを確認するためにAssertを使用するにはどうすればよいですか?
-
[解決済み] pytestで例外が発生したことを適切にアサートするには?
-
[解決済み] JUnit Testアノテーションを使用して例外メッセージをアサートするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
SpringBootApplication を型解決できない。
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
JSPで「リストが型解決できない!」の解決方法