web-dev-qa-db-ja.com

JUnitを使用してArrayListsが等しいかどうかを比較する簡単な方法は?

JUnitを使用してArrayListsが等しいかどうかを比較する簡単な方法は何ですか?平等インターフェースを実装する必要がありますか?それとも、それを簡単にする簡単なJUnitメソッドはありますか?

25
Alex Baranosky

リストの同等性のために特別なことをする必要はありません。assertEqualsを使用するだけです。

ArrayListおよびその他のリストは、オブジェクトのequals()メソッドを使用して、リストの対応する位置にあるすべてのオブジェクトが等しいことを確認することにより、equals()を実装します。したがって、リスト実装内のオブジェクトが正しく等しいことを確認することをお勧めします。

45
starblue

List.equalsのドキュメントを確認することをお勧めします。

これは少し簡単すぎる答えかもしれないと思います(それは正しいですが)。 ArrayListsのequalsをテストすることは、要素の同等性について考えたことを意味します。要素が整数の場合はすべて問題ありません。ただし、それらが独自のドメインクラスのインスタンスである場合は、平等(およびクローン作成)を取り巻く落とし穴に注意する必要があります。チェックアウトしてください:

http://www.artima.com/lejava/articles/equality.html

平等を実装するためのヒントの良いセット。余談ですが、オブジェクトのクローンを作成する必要がある場合は、クローン可能を実装する代わりに、コピーコンストラクターの使用を検討してください。 Cloneableは、予期しない可能性のある一連の問題を引き起こします。

2
Adriaan Koster