Я пытаюсь проверить свой маленький проект, и у меня проблема.Мое приложение использует простую многоуровневую архитектуру, и я не могу встретиться с сервисным уровнем UT.На самом деле я пытаюсь издеваться над классом CrudRepository из Spring-data.Я пытаюсь смоделировать метод findAll одного из моих репозиториев, который расширяет этот класс, но mockito не может смоделировать интерфейс.Есть ли способ сделать это просто помимо создания бина и заполнения его?
[Обновить] Вот код репозитория:
package fr.kaf.interview.Repository;
import fr.kaf.interview.model.Book;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface BookRepository extends CrudRepository<Book,Long> {
}
Вот UT:
@ExtendWith(MockitoExtension.class)
class BookServiceTest {
@Mock
private BookRepository bookRepository;
@InjectMocks
private BookService bookService;
@Test
public void should_get_All_books_from_database() {
//Given
Person author = new Person();
author.setFirstName("Ka");
author.setLastName("AwQl");
Book firstBook = new Book();
firstBook.setTitle("One Book");
firstBook.setAuthors(singletonList(author));
Book secondBook = new Book();
secondBook.setTitle("Second Book");
secondBook.setAuthors(singletonList(author));
given(bookRepository.findAll()).willReturn(asList(firstBook, secondBook));
//When
List<Book> allBooks = bookService.getAllBooks();
//Then
assertThat(allBooks).containsExactly(firstBook, secondBook);
}
}