При тестировании проверяются два метода. В первом мы сравниваем аналогичные объекты из списка, один из которых получен из класса DAOImpl, а другой из ServiceImpl,созданный на основе DAOImpl.
Во втором делаем тоже самое, но сравниваем два идентичных объекта, полученных по id из двух описанных выше классов.
По итогу тестирование проходит только второй метод.
public class FilmServiceImplTest {
private FilmDAOImpl filmDAO = new FilmDAOImpl();
private FilmServiceImpl filmService = new FilmServiceImpl();
@Test
public void allFilms() {
Assert.assertEquals(filmDAO.allFilms(2), filmService.allFilms(2));
}
@Test
public void getById() {
Assert.assertEquals(filmDAO.getById(5), filmService.getById(5));
}}
А вы equals переопределили?
У вас во втором случае, как понимаю, сравниваются ссылки на один и тот же объект, поэтому тест проходит.
В первом же случае объекты разные (хоть и их члены одинаковые), поэтому и валится тест. Переопределите equals в вашем FilmDAOImpl классе.
Что-то вроде:
@Override
public boolean equals(Object o){
if (this == o)
return true;
if (o == null)
return false;
if (getClass() != o.getClass())
return false;
final A a = (A) o;
// здесь все поля проверяем
return a.year == this.year && this.genre.equals(a.genre);
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости