resources.report.rules.pmd.UseAssertEqualsInsteadOfAssertTrue.html Maven / Gradle / Ivy
UseAssertEqualsInsteadOfAssertTrue
UseAssertEqualsInsteadOfAssertTrue
This rule detects JUnit assertions in object equality. These assertions should be made by more specific methods, like assertEquals.
//PrimaryExpression[
PrimaryPrefix/Name[@Image = 'assertTrue']
][
PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name
[ends-with(@Image, '.equals')]
]
[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.equals(b)); // bad usage
assertEquals(?a should equals b?, a, b); // good usage
}
}