Test coverage equals and hashCode
От: Alstresh Россия  
Дата: 02.11.11 13:04
Оценка:
Хочу в своем коде сделать 100% покрытие тестами методов equals and hashCode. Есть идея создать параметризированный тест, который при запуске будет с помощью рефлексии анализировать существующие поля у класса и гонять всевозможные комбинации на проверку транзитивности, комутативности null и.т.д. Вопрос в том, нет ли уже готового подобного решения, проблема вроде как стандартная, но поиск по интернету ничего не дал?
Re: Test coverage equals and hashCode
От: abch-98-ru Россия  
Дата: 02.11.11 13:32
Оценка: 4 (1)
A> поиск по интернету ничего не дал?
http://code.google.com/p/equalsverifier/ ?
Re: Test coverage equals and hashCode
От: alexey.a.semenov  
Дата: 04.11.11 08:39
Оценка:
Здравствуйте, Alstresh, Вы писали:

A>Хочу в своем коде сделать 100% покрытие тестами методов equals and hashCode.


Само по себе высокое покрытие бесполезно. Это просто метрика, симптом если хотите.
Есть мнение, что unit тесты это спецификация к коду.
Исходя из этого, я склоняюсь что всетаки такие тесты нужно писать вручную, это даст надежду (не гарантию),
что тесты буду достаточно читабельными и будут выражать намерения автора и показывать почему методы (тестрируемые) определены имеено так.

p.s. есть опасения что в настоящий момент методы hashcode и equals переопределены "не верно" ибо hard-to-test smell.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.