How can I do unit test for hashCode()?

Whenever I override equals and hash code, I write unit tests that follow Joshua Bloch’s recommendations in “Effective Java” Chapter 3. I make sure that equals and hash code are reflexive, symmetric, and transitive. I also make sure that “not equals” works properly for all the data members.

When I check the call to equals, I also make sure that the hashCode behaves as it should. Like this:

@Test
public void testEquals_Symmetric() {
    Person x = new Person("Foo Bar");  // equals and hashCode check name field value
    Person y = new Person("Foo Bar");
    Assert.assertTrue(x.equals(y) && y.equals(x));
    Assert.assertTrue(x.hashCode() == y.hashCode());
}

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)