ホームページ >Java >&#&チュートリアル >JUnit のassertEquals メソッドとassertSame メソッドの違い
1) 提供されるインターフェースの数はまったく同じではありません。
assertEquals は、boolean、long、int、およびその他の Java primitiveType 変数をサポートします。
assertSame はオブジェクトのみをサポートします。
2) 比較ロジックが異なるため、結果が異なる場合があります。
assertSame はオブジェクトを直接比較します。 assertEquals は、比較対象オブジェクトによって提供される比較ロジックを使用して比較を実行できます。
同じ条件下では、両者の運用結果は必ずしも同じではありません。
簡単な説明は次のとおりです:
assertEquals(Object A, Object B)の比較ロジック:
AとBが両方ともNullの場合、trueを返します。それ以外の場合は、A.equals(B) を呼び出して決定します。
assertSame(Object A, Object B)の比較ロジック:
A == Bの演算結果で判定。
A.equals(B) と A==B の違いは次のとおりです。
A が java.lang.Object の equals メソッドをオーバーライドしない場合、
2 つの Java オブジェクトのメモリ アドレスが比較され、比較結果は A==B と同じになります。
A が equals メソッド (GregorianCalendar、BigDecimal クラスなど) をオーバーライドする場合、
比較の結果は A==B の結果と同じにならない可能性があります。
上記は、JUnit のassertEquals メソッドとassertSame メソッドの異なる内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。