Ricorda che non stai testando se il tuo database funziona.
Se si utilizza un database da uno dei principali fornitori (o anche il secondo e il terzo livello) è possibile garantire che abbiano verificato che un'istruzione SQL leggerà o scriverà.
Probabilmente vuoi testare una serie di cose:
- Ho ricevuto le mie proprietà di connessione?
- Le colonne restituite dalla mia istruzione SQL corrispondono alla mia struttura dati?
etc
Alcuni di questi possono essere risolti da schemi di derisione (come descritto da un altro poster). Alcuni di questi potrebbero essere configurati come test di integrazione eseguiti indipendentemente dai test unitari. Alcuni di questi possono essere testati utilizzando un database in memoria.
Ho usato HSQLDB in passato per creare un database inmemory, pre-compilare dati e quindi eseguire i miei test unitari. Nei database di memoria sono gli ordini di grandezza più veloci di un database tradizionale, non devi preoccuparti di configurare le transazioni per pulirle ecc.