Class EqualsTester


  • @Beta
    @GwtCompatible
    public final class EqualsTester
    extends java.lang.Object
    Tester for equals() and hashCode() methods of a class.

    To use, create a new EqualsTester and add equality groups where each group contains objects that are supposed to be equal to each other, and objects of different groups are expected to be unequal. For example:

     new EqualsTester()
         .addEqualityGroup(new User("page"), new User("page"))
         .addEqualityGroup(new User("sergey"))
         .testEquals();
     

    This tests:

    • comparing each object against itself returns true
    • comparing each object against null returns false
    • comparing each object against an instance of an incompatible class returns false
    • comparing each pair of objects within the same equality group returns true
    • comparing each pair of objects from different equality groups returns false
    • the hash codes of any two equal objects are equal

    When a test fails, the error message labels the objects involved in the failed comparison as follows:

    • "[group i, item j]" refers to the jth item in the ith equality group, where both equality groups and the items within equality groups are numbered starting from 1. When either a constructor argument or an equal object is provided, that becomes group 1.
    Since:
    10.0
    • Constructor Summary

      Constructors 
      Constructor Description
      EqualsTester()
      Constructs an empty EqualsTester instance
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      EqualsTester addEqualityGroup​(java.lang.Object... equalityGroup)
      Adds equalityGroup with objects that are supposed to be equal to each other and not equal to any other equality groups added to this tester.
      EqualsTester testEquals()
      Run tests on equals method, throwing a failure on an invalid test
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EqualsTester

        public EqualsTester()
        Constructs an empty EqualsTester instance
    • Method Detail

      • addEqualityGroup

        public EqualsTester addEqualityGroup​(java.lang.Object... equalityGroup)
        Adds equalityGroup with objects that are supposed to be equal to each other and not equal to any other equality groups added to this tester.
      • testEquals

        public EqualsTester testEquals()
        Run tests on equals method, throwing a failure on an invalid test