Problemi con la piastra in PI di ASP che utilizzano lo sforzo in test unitari con EFProf (Entity Framework Profiler)

asp.net-boilerplate effort entity-framework entity-framework-6 unit-testing

Domanda

Problemi con EFProf ( http://www.hibernatingrhinos.com/products/EFProf ) con ASP Boilerplate ( http://www.aspnetboilerplate.com/ ).

Per i test unitari, ASP Boilerplate utilizza Effort ( https://github.com/tamasflamich/effort ) per il mocking del database in memoria.

Se eseguo i test unitari senza aggiungere il riferimento a EFProf, i test vengono eseguiti correttamente (verde).

Se aggiungo la riga di inizializzazione:

HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

nel mio test base ctor o nel mio progetto di applicazione Initialize (), ottengo il seguente errore:

HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

ComponentActivator: impossibile istanziare MyApp.EntityFramework.MyAppDataContext

L'eccezione interna ha le informazioni rilevanti:

Error: Unable to cast object of type 'Effort.Provider.EffortConnection' to type 'HibernatingRhinos.Profiler.Appender.ProfiledDataAccess.ProfiledConnection'.

Effort non è compatibile con EFProf? O sto facendo qualcosa di assolutamente ovvio e sbagliato nella mia inizializzazione?

Risposta accettata

Rispondere alla mia domanda: Effort falsifica l'oggetto DbContect ma in realtà non crea SQL per la memoria, quindi non c'è nulla da intercettare per i profiler. È anche il motivo per cui CommandText è sempre nullo quando si utilizza Database.Log di EF6 con sforzo.

Ho intenzione di provare a utilizzare Moq con EF6 per utilizzare un'implementazione del database in memoria per testare come alternativa al progetto di test di Asp Boilerplate che utilizza lo sforzo per questo articolo: https://msdn.microsoft.com/en-us/library/dn314429 (v = vs.113) .aspx




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché