Pytanie (s)
- Jak mogę przetestować aplikację internetową ASP.NET MVC4 z EntityFramework 5?
- Czy powinienem stosować szydercze ramy, takie jak Moq?
Wprowadzenie
Byłem badany wątek tygodni. Znalazłem dużo materiału, ale nic, co czuję, nie stanowi odpowiedzi na to pytanie. Wiele informacji ma wiele lat i może nie mieć zastosowania.Jak pisać testy dla mojej aplikacji internetowej?
Moja sytuacja
buduję aplikację MVC4 który jest przebudowa istniejącej ale przestarzały aplikacji. Baza danych już istnieje (i dlatego podejście oparte na bazie danych), jest duża i złożona. Idealnie, czego chcę, to fałszywy obiekt "entity", który jest identyczny z moim głównym obiektem podmiotu, ale wykorzystuje inną, "fałszywą" lub w pamięci bazę danych, aby móc wygenerować masę fałszywych danych, uruchomić testy i otrzymać opinię. Na przykład:
FakeEntities _db = new FakeEntities();
// test a controller action
tej pory ...
Z tego co rozumiem, jakim powinien być używany integration testing. Według this post by Ladislav Mrnka integracji testowanie oznacza działania kontrolera Testowanie i oznacza mniej problemów z LINQ do podmiotów i LINQ-obiekty
jeśli mock repozytorium będzie użyć Linq do obiektów i trzeba będzie zielony Test ale jeśli uruchomić aplikację z LINQ-podmioty dostaniesz wyjątek
wiem, co on oznacza i mogę się zgodzić - Chciałbym zapewnić, zawsze jestem przy użyciu Linq do podmiotów oraz rzeczywistą (lub zbliżoną do rzeczywistej) bazą danych.
Wiele czytałem o modelach repository pattern i this blog by linush, które wydają się być bardzo zbliżone do tego, co próbuję. W rzeczywistości stworzyłem już fikcyjny projekt, w którym przetestowałem tworzenie generic repository i pomyślnie użyto Entity Framework i "udawanego" DbContext, który bazował na ObjectSet w pamięci.
Mój problem z tym podejściem jest
- Jak wyżej, oznacza to używam Linq do obiektów zamiast Linq do podmiotów
- Moja aplikacja internetowa będzie polegać na wykorzystaniu ciężkiego Przechowywane procedury
Podsumowanie przed odebraniem
- MVC4, EF5 i SQL Server (chociaż chciałbym pozostać somewh w bazie agnostyka)
- możliwość sprawdzenia logiki, które używają SQL procedur przechowywanych
- LINQ-podmiotów
- bazy Pierwsze podejście
Tylko 50 powtórzeń za tak wiele pytań !!!!!! Spróbuj zwiększyć liczbę 0: –
[Bezpłatna analiza wydajności sieci Web AJAX Edition i narzędzie do debugowania] (http://www.compuware.com/en_us/application-performance-management/products/ajax-free-edition/Capabilities.html) –