JUnit5, Mockito возвращает неверное значение
Я только начинаю разбираться в модульном тестировании, и не могу понять, где я допустил ошибку.
Репозиторий:
@Repository
public interface BookRepository extends JpaRepository<Book, Integer> {
List<Book> findByAuthorContainingIgnoreCase(String author);
List<Book> findByGenreContainingIgnoreCase(String genre);
List<Book> findByNameContainingIgnoreCase(String name);
}
Сервис:
public List<Book> findByAuthorContaining(String author){
return bookRepository.findByAuthorContainingIgnoreCase(author);
}
Тест:
@Test
public void findByAuthors(){
List<Book> books = getBooks();
Mockito.when(bookRepository.findByAuthorContainingIgnoreCase(any())).thenReturn(books);
List<Book> result = bookService.findByAuthorContaining("testAuthor2");
Assertions.assertEquals(1, result.size());
}
private List<Book> getBooks(){
Book firstBook = new Book();
Book secondBook = new Book();
firstBook.setId_book(1);
firstBook.setAmount(1);
firstBook.setImage("/test1");
firstBook.setGenre("testGenre");
firstBook.setAuthor("testAuthor");
firstBook.setYear(2001);
firstBook.setPages(1);
firstBook.setPrice(1);
secondBook.setId_book(2);
secondBook.setAmount(2);
secondBook.setImage("/test2");
secondBook.setGenre("testGenre2");
secondBook.setAuthor("testAuthor2");
secondBook.setYear(2002);
secondBook.setPages(2);
secondBook.setPrice(2);
return List.of(firstBook, secondBook);
}
Какое бы значение я не подставлял вместо автора, юнит тест всегда показывает что размер result равен двум. Причем метод 100% работает корректно и я его успешно использую в приложении, что говорит о том, что я допустил ошибку именно в тестировании. Можете подсказать?