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!)
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Inside ModelVirtualCasting #1: Introduzione ai repository, il 27 maggio 2010 alle 07:30
- Nuova versione per EF Mapping Verifier, il 30 settembre 2009 alle 20:01
- Basta! Italia 2009 - I'll be there!, il 13 marzo 2009 alle 17:01
- Gli ORM e la many to one: 3 approcci differenti, il 13 gennaio 2009 alle 18:01
- Alcune info per chi usa NHibernate, il 6 ottobre 2008 alle 08:34