Posts

Spring Boot - Testing a JPA application With @DataJpaTest - Example

Image
In this section, we will learn how to test Repository layer components with @DataJpaTest in Spring Boot application. 1.  @ DataJpaTest  Instead of bootstrapping the entire application context for every test,  @DataJpaTest allows us to initialize only the parts of the Application context that are relevant to JPA tests. By default, it scans for @Entity classes and configures Spring Data JPA repositories. If an embedded database is available on the classpath, @DataJpaTest will autoconfigure one for testing purposes. By default, tests annotated with @DataJpaTest are transactional and roll back at the end of each test, means we do not need to clean up saved or modified table data after each test. Regular @Component , @Service or @Controller beans are not scanned when using this annotation.  This approach not only speeds up the testing process but also ensures a focused and efficient testing environment.  This approach is also known as "slicing" the application context. Find th

Spring Boot - Testing REST Clients With @RestClientTest - Example

Image
In this section, we will learn how to test  REST clients with @RestClientTest in Spring Boot application. The Spring Framework provides the following Rest clients for making calls to REST endpoints: RestTemplate  RestClient (Supporting from Spring 6.1 onwards) WebClient HTTP Interface In this example we are using RestTemplate client for  making call to REST endpoint .  We will implement a service that will fetch data from the JSONPlaceholder API.  As the part of testing we are using  MockRestServiceServer  to mock real API. It eliminates the use of an actual server and thus speeds up the testing process. 1.  @RestClientTest Instead of bootstrapping the entire application context for every test, @RestClientTest initializes the Spring application context with only those beans needed to test REST Clients. It will auto-configure Jackson , GSON , Jsonb , configures a RestTemplateBuilder , and adds support for MockRestServiceServer . The auto-configuration that @RestClientTest import by def