Я столкнулся с проблемой тестирования контроллера с разбиением на страницы для моего веб-проекта Spring boot MVC, в котором используется Thymeleaf . Мой контроллер выглядит следующим образом:
@RequestMapping(value = "admin/addList", method = RequestMethod.GET)
public String druglist(Model model, Pageable pageable) {
model.addAttribute("content", new ContentSearchForm());
Page<Content> results = contentRepository.findContentByContentTypeOrByHeaderOrderByInsertDateDesc(
ContentType.Advertisement.name(), null, pageable);
PageWrapper<Content> page = new PageWrapper<Content>(results, "/admin/addList");
model.addAttribute("contents", results);
model.addAttribute("page", page);
return "contents/addcontents";
}
Я пробовал с этим следующим тестовым сегментом, который будет подсчитывать элементы содержимого (изначально он вернет 0 элементов с нумерацией страниц).
andExpect(view().name("contents/addcontents"))
.andExpect(model().attributeExists("contents"))
.andExpect(model().attribute("contents", hasSize(0)));
но получая следующую ошибку (тест был в порядке, до разбиения на страницы):
java.lang.AssertionError: Model attribute 'contents'
Expected: a collection with size <0>
but: was <Page 0 of 0 containing UNKNOWN instances>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
Я погуглил, но здесь не повезло. Может ли кто-нибудь помочь мне с примером для тестирования контроллера, который работает с выводимым на страницы объектом из репозитория?
Существует ли какой-либо альтернативный способ проверить список с разбиением на страницы? Пожалуйста помоги.
Заранее спасибо!