Alternate names: TruthSelfEquals
If a test subject and the argument to isEqualTo
are the same instance (e.g.
assertThat(x).isEqualTo(x)
), then the assertion will always pass. Truth
implements isEqualTo
using [Objects#equal
] , which tests its arguments for
reference equality and returns true without calling equals()
if both arguments
are the same instance.
JUnit’s assertEquals
(and similar) methods are implemented in terms of
Object#equals
. However, this is not explicitly documented, so isn’t a
contractual guarantee of the assertion methods.
To test the implementation of an equals
method, use
Guava’s EqualsTester, or explicitly call equals
as part of the
test.
Suppress false positives by adding the suppression annotation @SuppressWarnings("SelfAssertion")
to the enclosing element.