Probar código que usa una base de datos es desafiante — necesitas comportamiento de datos realista sin problemas de flakiness o lentitud. Los enfoques incluyen bases de datos de prueba, bases de datos en memoria, transacciones/rollback, y mocking de la capa de datos — cada uno con sus ventajas y desventajas.
El desafío
Database-interacting code needs testing, but databases bring challenges:
→ real DB → realistic but SLOWER; needs SETUP and CLEANUP (state between tests)
→ shared state → tests can interfere (order dependence, flakiness)
→ mocking the DB → fast but may not catch real query/integration bugs
→ Choose an approach balancing realism, speed, and isolation.
