Non ho mai provato DbUnit
. Quello che faccio con nHibernate è la creazione di test suite che creano il database & dati al momento dell'impostazione (utilizzando sia SchemaExport
sia inserimenti batch), quindi esegui test che controllano sia le entità che le query.
Uso database di sviluppo locale come SQL Server Express
di Oracle Express Edition
a seconda del progetto.
In un progetto molto grande di cui facevo parte, abbiamo utilizzato Rollback technique
. Ogni test stava creando una transazione che è stata ripristinata alla fine. Questo è descritto qui .
Ma c'è un modo migliore di testare. Ieri ho letto un libro chiamato nHibernate 3.0 Cookbook da Jason Dentler in cui l'autore propone un metodo chiamato Test rapido con SQLite in -memoria database .
Non l'ho ancora provato, ma quella ricetta è completamente dettagliata e sembra promettente.
Sono sicuro che puoi scaricare il codice di esempio da qualche parte (non è stato in grado di trovarlo rapidamente), ma consiglio vivamente di acquistare il libro. Contiene altre tecniche di test come Fluent nHibernate Persistance Tester e Ghostbusters test .
Questa tecnica è spiegata anche in questo post sul blog .