Sharing What I Have Experienced Plus General Thoughts For Brainstorming

Here we will go through how to use embedded PostgreSQL in you local development environment plus how to use it for DAO integration/unit testing if you have are using PostgreSQL as your production database , you DAO testing should use the same database as your production one to have behavior consistency and same environment precondition.

We will go through a sample spring boot application to how the needed steps :

DAO unit testing with embedded PostgreSQL with custom data population on start

Spring boot dependencies :

the main maven application dependencies will the typical spring boot dependencies (spring data..ect) plus the embedded PostgresSQL and other needed libraries , i will just highlight the embedded PostgresSQL for DB, mapstruct and lombok for DTO and Entity mapping and boilerplate code

DAO unit testing with embedded PostgreSQL with custom data population on start:

The unit test DB config , here I intended to to make it a little bit detailed as i need to show how you can load only specific entities , DAOs and Data Repository , as unit testing should be scoped and limited to the target DAO layer only and not to load whole application entities and DAOs, from comments and annotations you will understand how to load specific repositories with their entities only

Then finally the Unit test class:

it shows how to load your test configuration , and how to insert some test data before starting the test case using @sql spring jdbc test annotation

Hopefully this help to understand how to do DAO unit testing with custom test-data load and using embedded PostgreSQL