2009-11-07 22 views
6

Jestem w punkcie, w którym chciałbym rozpocząć pisanie testów jednostkowych dla mojej aplikacji MVC. Zdecydowałem już, jak przetestować sterownik i mogę bez problemu testować swoje podstawowe biblioteki biznesowe. Mam zamiar odblokować kilka przedmiotów:W jaki sposób mogę testować widoki jednostkowe i atrybuty autoryzacyjne mojej aplikacji mvc asp.net w nUnit?

  • Jak mogę sprawdzić moje zdanie? Oznacza to, że po zwróceniu przez kontroler poprawnego widoku (który został przetestowany przez jednostkę, wraz z testowaniem jednostki, aby sprawdzić, czy przekazuje prawidłowe dane). Czy istnieje sposób na sprawdzenie jednostki, czy widok wyświetla poprawne dane we właściwych polach w NUnit, czy też potrzebuję do tego innego narzędzia?

  • W jaki sposób mogę przetestować zabezpieczenie? Używam niestandardowego dostawcy członkostwa i dostawcy roli, który w sobie, jak sądzę, jest testowalny jak każdy inny komponent - po prostu zmieniłem dostawcę i sprawdziłem, czy każda z metod zwraca oczekiwane wyniki. Interesuje mnie to, w jaki sposób testuję jednostkę, aby każda z metod kontrolera otrzymywała poprawne informacje o zabezpieczeniach od moich dostawców [tj. testowanie jednostki, czy atrybut Authorize działa poprawnie]?

Odpowiedz

3

Oto blog na temat testowania niestandardowych komponentów autoryzacji. Nie dotyczy to RoleProviders i Membership Providers, ale powinieneś być w stanie efektywnie używać tej samej metody do testowania dowolnej liczby filtrów.

http://darioquintana.com.ar/blogging/2009/05/23/aspnet-mvc-testing-a-custom-authorize-filters/

Zastrzeżenie: To może potrwać kilka parsowań go zrozumieć - to nie jest bardzo wyraźnie napisane i przykładowy kod pod warunkiem nie dokładnie do sedna albo, ale powinieneś być w stanie zebrać co potrzebujesz od tego.

0

Do testowania integracyjnego pod UI (Kontrolery dół) można użyć coś jak Fit, FitNesse, Slim lub nawet StoryTeller.

Aby przetestować interfejs użytkownika (widoki), należy rozważyć użycie Selenium i Selenium RC.

Zdaję sobie sprawę, że jest to dużo informacji, ale będzie ci pasować, jeśli chodzi o bardziej wytrzymałe rozwiązanie testowe.

+0

Dla kontrolerów i na dół używam nUnit - znam już testy jednostek na poziomie biblioteki, więc to nie jest problem. Przyznaję, że nigdy nie słyszałem o Slim czy StoryTeller, więc je sprawdzę. Sprawdzę jednak Selenium do testowania widoku. – BobTheBuilder

+0

Selenium RC z pewnością wygląda interesująco. Nie przyszło mi do głowy, że testowanie jednostkowe zostanie wykonane w samej przeglądarce. Moim pierwotnym spostrzeżeniem było to, że testowanie jednostki działałoby w nUnit na wyjściu HTTP. – BobTheBuilder

+0

Chcesz czystej separacji problemów, nawet podczas testów jednostkowych. Zazwyczaj nie zezwalam na testowanie mojej jednostki (Nunit, MsTest itp.), Dotknij bazy danych lub czegoś innego niż bieżący temat w teście. Fit, FitNesse, Slim i StoryTeller doskonale nadają się do testowania integracyjnego, ale nie powinny być używane do testów jednostkowych. Testowanie interfejsu użytkownika powinno być bardzo płytkie i powinno tylko sprawdzać, czy interfejs działa tak, jak powinien. W żadnym wypadku nie powinno się sprawdzać rzeczy pod maską (tj. Bazy danych, kontrolerów itp.) – Josh

1

Możesz użyć Ivonna, narzędzie komercyjne lub MvcIntegrationTestFramework, za darmo. Oba obsługują testowanie twoich widoków w procesie, ale Ivonna pozwala ci kpić z reszty, poprawiać twoją konfigurację itd., Więc jest bardziej po stronie testowania jednostki.

Powiązane problemy