ホームページ  >  記事  >  Java  >  JUnit のassertEquals メソッドとassertSame メソッドの違い

JUnit のassertEquals メソッドとassertSame メソッドの違い

黄舟
黄舟オリジナル
2016-12-28 11:40:451464ブラウズ

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) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。