SelfAssertion
This assertion will always fail or succeed.

Severity
ERROR

Alternate names: TruthSelfEquals

The problem

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.

Suppression

Suppress false positives by adding the suppression annotation @SuppressWarnings("SelfAssertion") to the enclosing element.