Лично я предпочитаю инструменты типа EmbeddedPostgres.
Дольше моков, безусловно, но зато это практически полный аналог работы в проде - БД поднялась, проинициализовалась данными, мы выполнили нужные нам действия (тот же insert или select любой сложности), умерла.
Ибо моки - это, конечно, хорошо, но как быть, если структуру базы мы уже поменяли, а тесты нет?
Код работает со старыми моками, все хорошо - а в реальной работе бац, и "все умерли"...