resources.report.rules.pmd.UseAssertSameInsteadOfAssertTrue.html Maven / Gradle / Ivy
UseAssertSameInsteadOfAssertTrue
UseAssertSameInsteadOfAssertTrue
This rule detects JUnit assertions in object references equality. These assertions should be made by more specific methods, like assertSame, assertNotSame.
//PrimaryExpression[
PrimaryPrefix/Name
[@Image = 'assertTrue' or @Image = 'assertFalse']
]
[PrimarySuffix/Arguments
/ArgumentList/Expression
/EqualityExpression[count(.//NullLiteral) = 0]]
[ancestor::ClassOrInterfaceDeclaration[//ClassOrInterfaceType[pmd-java:typeof(@Image, 'junit.framework.TestCase','TestCase')] or //MarkerAnnotation/Name[pmd-java:typeof(@Image, 'org.junit.Test', 'Test')]]]
Example(s):
public class FooTest extends TestCase {
void testCode() {
Object a, b;
assertTrue(a == b); // bad usage
assertSame(a, b); // good usage
}
}