Question (s)
- Come faccio a testare la mia applicazione web ASP.NET MVC4 con EntityFramework 5?
- Devo usare una struttura di simulazione come Moq?
Introduzione
Sono stato alla ricerca questo argomento per settimane. Ho trovato molto materiale ma nulla di ciò che sento risponde completamente alla domanda. Molte informazioni hanno anni e potrebbero non essere applicabili.Come si scrivono i test per la mia applicazione web?
La mia situazione
Sto costruendo un'applicazione MVC4 che è una ricostruzione di un'applicazione esistente, ma antiquato. Il database esiste già (e quindi l'approccio al primo database), è grande ed è complesso. Idealmente, quello che voglio è un falso oggetto "entità" identico al mio oggetto entità principale ma che utilizza un diverso database "mock" o in memoria di qualche tipo in modo da poter generare una serie di dati falsi, eseguire i test e ricevere un feedback Per esempio:
FakeEntities _db = new FakeEntities();
// test a controller action
Finora ...
Da quello che ho capito finora dovrei usare integration testing. Secondo this post by Ladislav Mrnka integrazione mezzi di prova azioni di controllo di prova e significa meno problemi con se deridere il repository che si intende utilizzare LINQ to entità e LINQ-to-oggetti
LINQ to Objects e si avrà un verde test, ma se si esegue l'applicazione con LINQ to Entities si otterrà un'eccezione
so cosa vuol dire e io sono d'accordo - vorrei assicurare che sto utilizzando sempre LINQ to Entities e un database reale (o vicino al reale).
Ho letto molto su repository pattern e this blog by linush sembra essere molto vicino a quello che potrei provare. In effetti ho già creato un progetto fittizio in cui ho testato la creazione di un generic repository e l'Entity Framework utilizzato con successo e un DbContext "fittizio" basato su ObjectSet in memoria.
Il mio problema con questo approccio è
- Come sopra, questo significa che sto usando LINQ to Objects, invece di LINQ to Entities
- mio web app si baserà su un uso pesante di stored procedure
Sommario prima di rispondere
- MVC4, EF5 e SQL Server (anche se mi piacerebbe restare somewh al database di agnostici)
- possibilità di testare la logica che utilizzano SQL stored procedure
- LINQ to Entities
- Database-primo approccio
Solo 50 rep per così tante domande !!!!!! Provare ad aumentare 0 di –
[Compuware AJAX Edition Free Web Analisi delle prestazioni e strumento di debug] (http://www.compuware.com/en_us/application-performance-management/products/ajax-free-edition/Capabilities.html) –