This rule is defined by the following XPath expression:
//PrimaryExpression[ PrimaryPrefix/Name[@Image = 'assertTrue'] ][ PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name [ends-with(@Image, '.equals')] ] [ancestor::ClassOrInterfaceDeclaration[//ClassOrInterfaceType[typeof(@Image, 'junit.framework.TestCase','TestCase')] or //MarkerAnnotation/Name[typeof(@Image, 'org.junit.Test', 'Test')]]]
Example:
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 } }