Come puoi eseguire gli stessi test di Sforzo usando solo Moq?

c# effort entity-framework-6 moq unit-testing

Domanda

Attualmente, ho impostato molti test tra cui livello di accesso ai dati e test del livello della logica aziendale utilizzando Effort (consultare https://effort.codeplex.com/ ). Abbiamo già utilizzato Moq nei nostri test di unità e il mio capo vorrebbe mantenere le cose semplici, quindi vuole che verifichi se posso trasferire i test dall'implementazione di Effort a noi solo Moq e FakeDbSet (vedere http: // aikmeng.com/post/62817541825/how-to-mock-dbcontext-and-dbset-with-moq-for-unit ), per semplificare la manutenzione del codice base.

Da quanto ho capito, Effort fondamentalmente simula un intero database SQL Server in memoria. Quindi sembra che ci vorrebbe un sacco di codice usando Moq per impostare tutto in modo che un test possa essere eseguito usando solo quello. Qualcuno ha qualche idea su questo? Può anche essere fatto senza un'enorme quantità di codice? Qualcuno ha qualche suggerimento? TIA.

Risposta accettata

Finito per stare con lo sforzo. L'utilizzo di FakeDbSet e Moq richiedeva molte più impostazioni e ha causato il fallimento di alcune query LINQ nei test di unità, anche se funzionavano in una situazione di produzione.

AGGIORNARE:

Si è scoperto che non era un problema con FakeDbSet o Moq - c'erano problemi nella mia query LINQ in cui non avrebbe funzionato se ci fossero valori di stringa nulli.




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é