Domanda

Può essere fatto senza usare TypeMock Islolator? Ho trovato alcuni suggerimenti on-line come ad esempio passando in un solo metadati stringa di connessione, ma niente ho incontrato oltre TypeMock sembra permettere veramente un ObjectContext finta che può essere iniettato in servizi per i test di unità. Devo buttare giù il $$ per TypeMock, o ci sono alternative? Ha nessuno è riuscito a creare qualcosa di paragonabile a TypeMock che è open source?

È stato utile?

Soluzione

Sono unit test EF4 facilmente senza beffardo. Quello che ho fatto è stato creare un'interfaccia repository utilizzando il codice http://elegantcode.com/2009/12/15/entity-framework-ef4-generic-repository-and-unit-of-work-prototype/ come base poi ho creato una classe InMemoryRepository<T> che ha utilizzato l'interfaccia IRepository. Ho poi sostituito il IObjectSet<T> con un interno List<T> della classe e cambiato i metodi di recupero di conseguenza.

Quindi se avete bisogno di fare test di unità, passare nella InMemoryRepository piuttosto che il DataRepository.

Altri suggerimenti

Mettere la query Linq2Entity dietro un'interfaccia, unit test è in isolamento nei confronti di un vero e proprio database.

test di scrittura per la logica di business con schernisce per le interfacce di interrogazione. Non lasciate che Linq sanguinare nella vostra logica di business!

Non utilizzare il RepositoryPattern!

Avvolgere l'ObjectContext in una classe proxy. Poi iniettare che nelle vostre classi.

Non credo che il modello repository è l'unica risposta alla domanda (si evita il problema, certo)

I piaciuto risposta - credo più appropriato per l'introduzione di test per una esistente base di codice Creazione Interfaccia per ObjectContext

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top