При тестировании проверяются два метода. В первом мы сравниваем аналогичные объекты из списка, один из которых получен из класса 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);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу свое первое приложение на JavaFX - чатСтолкнулся с проблемой обновления данных в компоненте сцены JavaFX - textArea
В коде имеется сервис, который разрешает/отклоняет HTTP запрос в зависимости от времени (до 11:00 разрешено, после - запрещено)На текущий момент...
По нажатию на кнопки в подменю с определенным размером окна должен установится данный размер окна,но этого не происходитНе могу понять почему