Testy jednostkowe ASP.Net aplikacje MVC 4

zdaję sobie sprawę, że jest to duplikat około 20 różnych postów, ale żaden z nich nie są specyficzne dla MVC4, i żaden, który widziałem naprawdę odpowiedzieć na wszystkie moje pytania. Jak dotąd mój pierwszy wypad w świat TDD był co najmniej frustrujący. Większość tego, co próbowałem zrobić, wydaje się niezgodna z MVC 4 lub prawie niemożliwa bez użycia słabo udokumentowanych bibliotek stron trzecich, których jeszcze nie rozumiem.

Chcę móc napisać test, który sprawdzi moje akcje kontrolera, model, do którego przechodzą i widok , do którego akcja wysyła model. Chcę sprawdzić, czy Widok istnieje, chcę sprawdzić, czy przekazywany model jest właściwym typem dla widoku, chciałbym w jakiś sposób sprawdzić, czy będzie przetwarzany poprawnie. Chcę również móc przetestować Moje trasy. A testowanie filtrów uwierzytelniania?

I want a way to unit test ASP.Net MVC, które pozostawią bardzo niewiele Przypadkowi.

Testowanie modelu wyjścia akcji wydaje się łatwe wystarczy, ale testowanie widoków było prawie niemożliwe.

Oto moja lista pytań:

  1. Jak przetestować akcję i uzyskać jej wynik, aby sprawdzić, czy żądany widok istnieje?
  2. Jak przetestować trasy?
  3. Jak mogę sprawdzić, czy moje widoki są przetwarzane prawidłowo?
  4. co tak naprawdę jest "najlepszą praktyką" dla dokładnego jednostkowego testowania ASP.Net MVC 4?
  5. Jak uwierzytelnianie formularzy testów jednostkowych?
  6. Jak przetestować filtry akcji?

Wolałbym korzystać z wbudowanych projektów testowych Visual Studio, ale jeśli muszę korzystać z NUnit, muszę. Muszę się tylko upewnić, że wszystko będzie dobrze zrobione.

Z góry dziękuję za odpowiedzi.

EDIT: nie mogłem również uruchomić NUnit z moją aplikacją MVC4 z powodu niektórych niekompatybilnych z wersją. NET jeden z zestawów został skompilowany.

1 answers

  1. upewnianie się, że widok istnieje
  2. http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/
  3. http://blog.davidebbo.com/2011/06/unit-test-your-mvc-views-using-razor.html
  4. patrz poniżej
  5. Jak mogę przetestować mój ASP.NET kontroler MVC wykorzystujący FormsAuthentication?
  6. Jak przetestować filtry akcji w ASP.NET MVC?

Nr 4: to trudne pytanie. Jak testować cokolwiek dokładnie ? Osobiście nie testuję widoków, poza głównymi przeglądarkami 3 i moimi dwoma oczami, ponieważ trudno jest przetestować stronę internetową i wszystkie jej komponenty bez jej użycia. Masz wypalanie JavaScript, stylizację CSS i wygląda inaczej w różnych przeglądarkach. Wydaje mi się więc, że testowanie widoku jest niewielką częścią ogólnej użyteczności Twojej witryny. Jeśli opracowujesz prosty raport oparty na tabeli danych finansowych, przetestuj te dane są trudne. Jeśli twój widok jest bazą dla fantazyjnej witryny Ajax, może nie testuj HTML tak bardzo, jak doświadczenie. Wiem, że nie jest to łatwa, prosta odpowiedź, ale akceptowalny poziom pokrycia zawsze wiąże się z kompromisami.

 59
Author: Rob Rodi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:11