In this article, we will demonstrate an integration test where we have to persist the entities with mocked auditing date fields when JPA Auditing is enabled. Technologies used: Spring Boot 2.4.0 Spring 5.3.1 JUnit Jupiter 5.7.0 Tomcat embed 9.0.39 Java 8 1. Project Dependencies pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> […]

Read more Mocking Spring Data DateTimeProvider

Try to mock a repository save() method, but it is always returning null? P.S Tested with Spring Boot 2 + Spring Data JPA @Test public void save_book_OK() throws Exception { Book newBook = new Book(1L, "Mockito Guide", "mkyong"); when(mockRepository.save(newBook)).thenReturn(newBook); mockMvc.perform(post("/books") .content("{json}") .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)) .andExpect(status().isCreated()); } Solution 1. Mockito uses the equals for argument matching, try […]

Read more Spring + Mockito – Unable to mock save method?

Try to mock a repository findById method, but no idea use thenReturn() to return an object, as it accepts an Optional? P.S Tested in Spring Boot 2 environment import static org.mockito.Mockito.*; import org.springframework.boot.test.mock.mockito.MockBean; @MockBean private BookRepository mockRepository; @Before public void init() { Book book = new Book(1L, "A Book"); //error, can’t resolve method thenReturn(book)? when(mockRepository.findById(1L)).thenReturn(book); […]

Read more Mockito – How to mock repository findById thenReturn() Optional?

Run the following Spring Boot + JUnit 5 + Mockito integration test. package com.mkyong.core.services; import com.mkyong.core.repository.HelloRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.springframework.boot.test.context.SpringBootTest; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.when; @SpringBootTest public class HelloServiceMockTest { @Mock private HelloRepository helloRepository; @InjectMocks // auto inject helloRepository private HelloService helloService = new HelloServiceImpl(); @BeforeEach […]

Read more Mockito – when() requires an argument which has to be ‘a method call on a mock’