Simplify Null Test Assertions
ID |
java.test_assertion_null_simplify |
Severity |
low |
Remediation Complexity |
medium |
Remediation Risk |
low |
Remediation Effort |
medium |
Resource |
Code Smell |
Language |
Java |
Tags |
best-practice, junit, testing |
Description
Reports assertion patterns that should use assertNull or assertNotNull instead, such as assertTrue(x == null), assertFalse(x != null), assertEquals(null, x), and assertNotEquals(null, x).
Rationale
Using assertTrue(x == null) or assertEquals(null, x) to check for null is indirect and produces less informative failure messages. When assertTrue(x == null) fails, the message only says the boolean condition was false. When assertNull(x) fails, the message includes the actual non-null value, making diagnosis straightforward.
// Bad - indirect null checks
assertTrue(result == null);
assertFalse(value != null);
assertEquals(null, response);
assertNotEquals(null, data);
// Bad - null on either side
assertTrue(null == result);
Remediation
Use the dedicated null assertion methods that provide better failure diagnostics.
// Good - direct null assertions
assertNull(result);
assertNull(value);
assertNull(response);
assertNotNull(data);