Najlepsze praktyki testowania aplikacji ASP.NET
Marcin Daczkowski
?
UI
Service
Unit
UI
„In short, tests that run end-to-end through the UI are: brittle, expensive to write, and time consuming to run.”
Martin Fowler
Agenda
Demo
• aplikacja sklepu• podstawowa wersja testu
Jakie są korzyści?
• automatyczne testy regresywne• reprodukcja scenariuszy podczas pracy nad
nowymi funkcjonalnościami • testy na wielu przeglądarkach• masowe sprawdzenia scenariuszy dla
różnych parametrów
Jak redukować koszty?
• testuj tylko kluczowe scenariusze• buduj testy stopniowo zaczynając od
„happy path”• ogranicz asercje• zacznij wcześnie• postaw na zespół
Jak zmniejszyć złożoność?
• twórz testy niezależne od sterownika• preferuj selekcję po id > name > css > xpath• oznaczaj elementy aby uprościć dostęp• korzystaj z wzorca Page Object– logiczny widok strony– ukrywa użycie sterownika przed testem– nie zawiera asercji– fluent interface
Demo
• parametryzowany TestFixture• stworzenie Page Object dla poprzedniego
testu• PageFactory
Jak przyspieszyć testy?
• headless browser• DriverService• wysokopoziomowe mockowanie• uruchamianie testów równolegle
Demo
• Phantom JS• Driver Service
Zapraszam do dyskusji