私はCollection
の下のインタフェースのいくつかを返すメソッドをチェックする簡単なテストを書いています。私は可能な限りこのコレクションの内部表現を抽象化しようとしているので、このテストは両方の場合に渡されます:メソッドがList
とSet
を返すとき。注文とコレクションの等価性を比較する
は、(LinkedHashSet
またはLinkedHashMap
にバックアップされたSet
)注文されているので、私も注文をテストする必要があります。だから、一般的に私はこのようなテストを書きたいのです:両方のコレクション場合に限っ失敗します
assertThat(returnedList, containsOrdered('t1", "t2", "t3"));
は「同じ」(同じ順序で、すなわち同じ値)ではありません。
この場合、Hamcrestライブラリが役立つことがわかりましたが、私はそのドキュメントに固執しています。何か助けていただければ幸いですが、私はCollectionTestUtilまたは私自身のHamcrest Matcher
を書くことは避けようとします。
Collection<String> returnedList = new ArrayList<String>(); //Replace with call to whatever returns the ordered collection
Assert.assertArrayEquals(new Object[]{"t1", "t2", "t3"}, returnedList.toArray());
このパッケージには完全なパッケージとクラスパスを含めることができますか? JUnitやHamcrestからassertThatを使っていますか?何か違いはありますか? –
私はhamcrest-all依存関係を引き出していたので、間違ったバージョンのhamcrestライブラリを持っていました。私はそれをjunitの重複した問題と一緒に修正しました(hamcrestを提供しないjunit-dep artifactがあるので、完全なhamcrestサポートを追加する可能性があります)。ご協力いただきありがとうございます –