JUnit Assertequals On Array

ID

java.junit_assertequals_on_array

Severity

low

Remediation Complexity

trivial

Remediation Risk

low

Remediation Effort

low

Resource

Reliability

Language

Java

Tags

best-practice, junit, testing

Description

Reports assertEquals() calls where an argument is an array. Arrays in Java do not override equals(), so assertEquals compares array references rather than contents. Use assertArrayEquals() instead.

Rationale

Reliability — The assertion compares references and will always fail (or vacuously pass) regardless of actual array content equality.

Remediation

Non-compliant code

assertEquals(new int[]{1, 2}, new int[]{1, 2}); // always fails

Compliant code

assertArrayEquals(new int[]{1, 2}, new int[]{1, 2});