Heim  >  Artikel  >  Java  >  Der Unterschied zwischen den Methoden „asserEquals“ und „assuredSame“ in JUnit

Der Unterschied zwischen den Methoden „asserEquals“ und „assuredSame“ in JUnit

黄舟
黄舟Original
2016-12-28 11:40:451464Durchsuche

1) Die Anzahl der bereitgestellten Schnittstellen ist nicht genau gleich.
assertEquals unterstützt boolesche, lange, int- und andere Java-PrimitiveType-Variablen.
assertSame unterstützt nur Object.

2) Die Vergleichslogik ist unterschiedlich und die Ergebnisse können unterschiedlich sein.
assertSame ist ein direkter Vergleich von Objekten. affirmEquals kann die vom verglichenen Objekt bereitgestellte Vergleichslogik verwenden, um Vergleiche durchzuführen.
Unter den gleichen Bedingungen sind die Laufergebnisse der beiden nicht unbedingt gleich.
Eine kurze Erklärung lautet wie folgt:
Die Vergleichslogik von „assertEquals(Object A, Object B):“
Wenn A und B beide Null sind, wird „true“ zurückgegeben. Andernfalls rufen Sie zur Bestimmung A.equals(B) auf.

Vergleichslogik von AssertSame(Object A, Object B):
Gemessen am Ergebnis der A == B-Operation.

Der Unterschied zwischen A.equals(B) und A==B ist.
Wenn A die Equals-Methode von java.lang.Object nicht überschreibt,
dann ist der Speicheradressenvergleich der beiden Java-Objekte derselbe wie das Ergebnis von A==B.
Wenn A die Methode equal überschreibt (z. B. GregorianCalendar, Klasse BigDecimal),
dann ist das Vergleichsergebnis nicht unbedingt dasselbe wie das Ergebnis von A==B.

Oben sind die unterschiedlichen Inhalte der Methoden „assertEquals“ und „assuredSame“ in JUnit aufgeführt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn