Series: Learn About Unit Test in Java Spring Boot (4 parts)

@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class DeleteFromRepositoryUnitTest {
    @Autowired
    private BookRepository bookRepository;

    @Autowired
    private CategoryRepository categoryRepository;

    Book book1;
    Book book2;
    List<Book> books;

    @PostConstruct
    public void initData() {
        Category category1 = new Category(1L, "anthology");
        categoryRepository.save(category1);
        Category category2 = new Category(2L, "comedy");
        categoryRepository.save(category2);
        book1 = new Book(1L, "The Hobbit", category1);
        book2 = new Book(2L, "Glory", category2);
        books = new ArrayList<>();
        books.add(book1);
        books.add(book2);
        bookRepository.saveAll(books);
    }

    @Test
    public void whenDeleteByIdFromRepository_thenDeletingShouldBeSuccessful() {
        bookRepository.deleteById(book1.getId());
        assertThat(bookRepository.count()).isEqualTo(1);
    }
      @Test
    public void whenDeleteAllFromRepository_thenRepositoryShouldBeEmpty() {
        bookRepository.deleteAll();
        assertThat(bookRepository.count()).isEqualTo(0);
    }

Embedded PostgreSQL for Spring Boot Tests | Baeldung

11. Testing

Best Practices for Unit Testing in Java | Baeldung