Testare il mapping di Entity Framework
Una delle necessità più sentite quando si lavora con Entity Framework (ma in generale, con qualsiasi ORM) è quella di capire se il mapping, realizzato a manina o tramite il designer, sia scritto correttamente oppure no. Prendendo spunto da ciò che esiste già per NHibernate, ma sviluppandolo completamente da zero in TDD, sto lavorando a EF Mapping Verifier, una libreria che consente di testare la corretta persistenza delle entity con una sintassi semplice ed intuitiva:
using(new TransactionScope())
{
VerifyMapping.For<customer>(new MyObjectContext())
.Test(c => c.Id, 1)
.Test(c => c.Name, "Marco")
.Execute();
}</customer>Tramite lambda expression, insomma, è possibile impostare i dati voluti sulla entity da testare (in questo caso Customer); VerifyMapping utilizza questi dati per costruire un'istanza di Customer, la salva su database, successivamente la recupera e verifica che i valori delle proprietà corrispondano. Se circondiamo il tutto con un TransactionScope senza invocarne il metodo Complete, i test divengono atomici e indipendenti, dato che non viene mai effettuato il commit della transazione.
Attualmente si tratta di una pre-pre-release, molto limitata, che non gestisce ancora le relazioni tra entity, ad esempio. Ma è un work-in-progress, conto di pubblicare aggiornamenti presto, ed in particolare:
- Test delle relazioni 1-to-many e many-to-1
- Supporto a Entity Framework 4.0
- Supporto a entità POCO
Il download lo trovate, come al solito, nel lab.
Come dice il Mostarda, stay tuned (se avete pazienza!)











