Test assertions using operator comparison can be simplified

Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.

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