2016-04-16 15 views
0

私はjunit &のテストに新しくなっています。クラス型のオブジェクトで構成される2つの配列MyUniqueClassがあります。同じ位置に同じ要素がある場合、2つの配列が等しいとみなします。また、私は独自のクラスに対してequals()メソッドをオーバーライドしました。ユニークなクラスの配列の等価性のためのJunit-check

junitでこれらの2つの配列が等しいかどうかチェックしたいと思います。私はAPIのメソッドを見つけることができませんでした - http://junit.sourceforge.net/javadoc/org/junit/Assert.html junitで平等をチェックするにはどうすればいいですか?

EDIT:

私は配列を比較するために、私のJUnitテストを実行すると、私はエラーを取得:

arrays first differed at element [0]; expected: com.test.IntegerRange<[210, 210]> but was: com.test.IntegerRange<[210, 210]> 
    at org.junit.internal.ComparisonCriteria.arrayEquals(ComparisonCriteria.java:50) 
    at org.junit.Assert.internalArrayEquals(Assert.java:473) 

感謝を!

+1

メッセージは、あなたが知る必要があることを正確に示しています。意味:arrayOne [0] .equals(arrayTwo [0]);を呼び出すと、結果はfalseです。簡単に言えば、これらの2つの要素は同一であり、equals()の実装が正しいと仮定します。しかし、そうであれば、このエラーメッセージが表示されません。理解しておくべき最も重要なことは、コンパイラを信じて、あなたの前提を信じるよりも** **メッセージを主張するべきです。 – GhostCat

答えて

0

少し近いかもしれません。あなたがリンクしたページで、私はこれを見つけました:

public static void assertArrayEquals(java.lang.String message, 
           java.lang.Object[] expecteds, 
           java.lang.Object[] actuals) 
          throws org.junit.internal.ArrayComparisonFailure 
+0

ハンク、それは動作しません。私の編集したコメントを見てください。 – HelloWorldNoMore

+0

@HelloWorldNoMore、IntegerRange.equals()メソッドをチェックする必要があるようです。それをオーバーライドしなかった場合、IntegerRangeのフィールドは比較されません - 同じインスタンスの場合のみtrueを返します –

+0

参照しているIntegerRangeコードを共有できますか? –

関連する問題