Test assertions using operator comparison can be simplified

Metadata

ID: java-best-practices/simplify-test-assertions-ops

Language: Java

Severity: Notice

Category: Best Practices

Description

Test assertions can be made more concise through the utilization of a more specialized assertion method.

In this rule, we check for the use of operators, such as, == and != in assertTrue or assertFalse methods and suggest replacing with either a assertSame or assertNotSame method.

This enhances the error message clarity and improves the overall readability of the assertion for other developers.

Non-Compliant Code Examples

import org.junit.Test;
import static org.junit.Assert.*;

class Foo {
    Object a,b;
    @Test
    void testFoo() {
        assertTrue(a == b); // could be assertSame(a, b);
        assertTrue(a != b); // could be assertNotSame(a, b);

        assertFalse(a == b); // could be assertNotSame(a, b);
        assertFalse(a != b); // could be assertSame(a, b);
    }
}

Compliant Code Examples

import org.junit.Test;
import static org.junit.Assert.*;

class Foo {
    Object a,b;
    @Test
    void testFoo() {
        assertSame(a, b);
        assertNotSame(a, b);

        assertNotSame(a, b);
        assertSame(a, b);
    }
}
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis

PREVIEWING: may/unit-testing