60

Zdaję sobie sprawę, że jest to duplikat około 20 różnych postów, ale żaden z nich nie jest specyficzny dla MVC4, a żaden, który widziałem, nie odpowiada na wszystkie moje pytania. Do tej pory moja pierwsza wizyta w świecie TDD była co najmniej frustrująca. 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.Testowanie jednostek ASP.Net MVC 4 aplikacje dokładnie

Co chcę zrobić, to napisać test, który przetestuje moje akcje kontrolera, model, który przechodzą i Widok akcja wysyła model do. Chcę przetestować, czy widok istnieje, chcę przetestować, czy przekazany model jest odpowiedni dla widoku, chciałbym jakiś sposób, aby przetestować, czy będzie on prawidłowo przetwarzać. Chcę też móc przetestować moje trasy. I testowanie filtrów uwierzytelniania?

Chcę przejść do testu urządzenia ASP.Net MVC, który pozostawi bardzo mało przypadkowi.

Testowanie wyjścia modelu Akcji wydaje się dość łatwe, ale testowanie widoków było niemożliwe.

Więc oto moja lista pytań:

  1. Raz przetestowanie działania i uzyskać wynik działania, w jaki sposób mogę sprawdzić, czy istnieje pogląd, że chce?
  2. Jak mogę przetestować trasy?
  3. Jak mogę sprawdzić, czy moje poglądy są przetwarzane prawidłowo?
  4. Co to jest naprawdę "najlepsza praktyka" do testowania jednostkowego THOROUGH ASP.Net MVC 4?
  5. W jaki sposób uwierzytelniam formularze jednostkowe?
  6. Jak mogę sprawdzić działanie filtrów jednostek?

Wolę używać wbudowanych projektów testowych Visual Studio, ale jeśli muszę użyć NUnit, muszę. Muszę tylko upewnić się, że zostanie zrobione poprawnie.

Z góry dziękuję za odpowiedzi.

EDIT:. Ja też nie mógł się NUnit pracy z moim app MVC4 powodu niektóre niezgodnie z wersją .NET jeden z zespołów został skompilowany w

+2

Twoje prawdopodobnie lepsze wyszukiwanie tych pytań indywidualnie. Jeśli nic nie wyjdzie, zadaj osobne pytanie dla każdego. – mxmissile

Odpowiedz

59
  1. Making sure a view exists
  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 niżej
  5. How can I unit test my ASP.NET MVC controller that uses FormsAuthentication?
  6. How-to test action filters in ASP.NET MVC?

nie. 4: To trudne pytanie. Jak dokładnie przetestować cokolwiek ?Osobiście nie testuję poglądów, poza trzema głównymi przeglądarkami i moimi dwoma oczami, ponieważ trudno przetestować stronę internetową i wszystkie jej składniki bez faktycznego korzystania z niej. Masz wypalanie JavaScript, stylizację CSS i wygląda inaczej w różnych przeglądarkach. Dla mnie wygląda na to, że testowanie widoku jest drobną częścią ogólnej użyteczności Twojej witryny. Jeśli tworzysz prosty raport oparty na danych finansowych, przetestuj te dane. Jeśli twój widok jest podstawą dla wyrafinowanej strony Ajax, może nie testuj HTML tak bardzo jak doświadczenie. Wiem, że nie jest to łatwa, wytarta i sucha odpowiedź, ale akceptowalny poziom ubezpieczenia zawsze wiąże się z kompromisami.

+0

Używam Visual Studio 2013. Pobrałem Generator testów jednostkowych, aby rozwiązać problem z wyświetlaniem opcji Generuj test jednostki. Problem polega na tym, że te testy jednostkowe, które tworzy, są wizualne, a nie C#. Czy wiesz, czy istnieją jakieś aktualne informacje na temat korzystania z przewodników generatora testów jednostkowych? Do tej pory nie miałem szczęścia. – user2952272

+2

Uwaga: Link na # 2 nie działa. Link roboczy znajduje się tutaj: http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/ –