Должен ли я проверять каждое свойство этого объекта?
Да, вам следует.В противном случае вы бы частично проверили состояние объекта, что может привести к неопределенным данным для непроверенных свойств.
Каков наилучший способ проверки таких операций доступа к данным (в настоящее время я использую dbunit)
Утверждение равенства фактического содержимого набора данных / таблицы и предварительно определенного содержимого набора данных / таблицы.Это описано в руководстве по DbUnit .Это имело бы смысл для операций с мутацией, включающих INSERT
, DELETE
или UPDATE
.
Для операций SELECT
вы можете утверждать значения в реальном и ожидаемом объектах или читатьСвойства объекта в карту, и сравнить его с ожидаемой картой.Если вы реализовали equals()
(и hashcode()
) для учета всех свойств объекта, assertEquals()
должно быть достаточно для проверки объектов на равенство.Если вы не реализовали equals()
для рассмотрения всех свойств объекта на равенство, вы можете вместо этого использовать метод assertThat()
с пользовательским сопоставителем, чтобы проверить, равны ли свойства объекта.
Дополнительно, еслиу вас есть несколько таких тестов, которые имеют известный набор входных данных для операции DAO и ожидаемое содержимое набора данных / таблицы после операции DAO, вы можете рассмотреть параметризацию тестов , так что последовательность тестов будет определена только один раз,но тест выполняется несколько раз с разными входами, и система получает разные ожидаемые результаты.