В тестах Guava есть утилита под названием EqualsTester
, которую мы используем в качестве повседневной части наших модульных тестов для тестирования equals
и hashCode
.Его использование выглядит как
new EqualsTester()
.addEqualityGroup("hello", "h" + "ello")
.addEqualityGroup("world", "wor" + "ld")
.addEqualityGroup(2, 1 + 1)
.testEquals();
, который проверяет, что все значения в одной и той же группе равны и имеют одинаковые хеш-коды, что разные группы не равны, и что различные другие инвариантывсе устраивает.Вы можете использовать его самостоятельно или просто позаимствовать его идеи.
Я был бы крайне удивлен, если бы можно было проводить тестирование без генерации или явного указания тестовых значений, просто потому, что это кажется очень вероятнымэквивалентно проблеме остановки.