Хочу в своем коде сделать 100% покрытие тестами методов equals and hashCode. Есть идея создать параметризированный тест, который при запуске будет с помощью рефлексии анализировать существующие поля у класса и гонять всевозможные комбинации на проверку транзитивности, комутативности null и.т.д. Вопрос в том, нет ли уже готового подобного решения, проблема вроде как стандартная, но поиск по интернету ничего не дал?
Здравствуйте, Alstresh, Вы писали:
A>Хочу в своем коде сделать 100% покрытие тестами методов equals and hashCode.
Само по себе высокое покрытие бесполезно. Это просто метрика, симптом если хотите.
Есть мнение, что unit тесты это спецификация к коду.
Исходя из этого, я склоняюсь что всетаки такие тесты нужно писать вручную, это даст надежду (не гарантию),
что тесты буду достаточно читабельными и будут выражать намерения автора и показывать почему методы (тестрируемые) определены имеено так.
p.s. есть опасения что в настоящий момент методы hashcode и equals переопределены "не верно" ибо hard-to-test smell.