[解決済み] ハムクレストのコレクションを比較する
2022-06-25 14:08:26
質問
2つのリストを比較しようとしています。
assertThat(actual.getList(), is(Matchers.containsInAnyOrder(expectedList)));
しかし、アイデア
java: no suitable method found for assertThat(java.util.List<Agent>,org.hamcrest.Matcher<java.lang.Iterable<? extends model.Agents>>)
method org.junit.Assert.<T>assertThat(T,org.hamcrest.Matcher<T>) is not applicable
(no instance(s) of type variable(s) T exist so that argument type org.hamcrest.Matcher<java.lang.Iterable<? extends model.Agents>> conforms to formal parameter type org.hamcrest.Matcher<T>)
method org.junit.Assert.<T>assertThat(java.lang.String,T,org.hamcrest.Matcher<T>) is not applicable
(cannot instantiate from arguments because actual and formal argument lists differ in length)
どのように書けばいいのでしょうか?
どのように解決するのですか?
2つのリストが同一であることを主張したいのであれば、Hamcrestで複雑にする必要はありません。
assertEquals(expectedList, actual.getList());
もし本当に順序を無視した比較を行ないたいのであれば、このように
containsInAnyOrder
varargs メソッドを呼び出し、直接値を提供することができます。
assertThat(actual.getList(), containsInAnyOrder("item1", "item2"));
(リストが
String
であると仮定すると、むしろ
Agent
ではなく、この例では)
もし、本当に同じメソッドを
List
:
assertThat(actual.getList(), containsInAnyOrder(expectedList.toArray(new String[expectedList.size()]));
これがないと、一つの引数でメソッドを呼び出してしまい
Matcher
にマッチすることを期待する
Iterable
ここで
各要素
は
List
. にマッチするように使うことはできません。
List
.
つまり
List<Agent>
と
Matcher<Iterable<List<Agent>>
という、あなたのコードで試みられているものです。
関連
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
Javaクラスローダーにソースコードから潜り込む
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
javaでクラスを作成すると、enclosing classでないように見える
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
このラインで複数のマーカーを解決する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
final, finally, finalizeの違いについて話してください。
-
プロジェクトの依存関係を解決できなかった 解決
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
JSPで「リストが型解決できない!」の解決方法