The most specific assertion methods possible should always be prefered to the use of ``++assertTrue++``, when the argument requires further processing. Doing so yields cleaner, clearer code, and therefore easier maintenance.


== Noncompliant Code Example

[source,text]
----
assertTrue(a == null); // Noncompliant
assertFalse(a != null); // Noncompliant

assertTrue(b != null); // Noncompliant
assertFalse(b == null); // Noncompliant

assertTrue(a == b);  // Noncompliant
assertFalse(a != b); // Noncompliant

assertTrue(a.equals(b)); // Noncompliant
assertFalse( !a.equals(b)); // Noncompliant

assertTrue(!a); // Noncompliant
assertFalse(!b); // Noncompliant
----


== Compliant Solution

[source,text]
----
assertNull(a);

assertNotNull(b);

assertSame(a, b);

assertEqual(a, b);

assertFalse(a);
assertTrue(b);
----

