Test-Driven-Development z C#
Cezary Walenciuk
Test-Driven-Development
z C#
Zalety TDD :
- Wymusza na tobie dokładne przemyślenie potrzebnych klas,metod i właściwości
- Ustalasz CO kod powinnien robić, a nie JAK
- Możesz od razu testować fragment aplikacji
Zalety TDD :
- TDD wymusza na tobie modularność
- Co jeśli baza danych nie jest gotowa? Co jeśli WEB API nie jest gotowe?
- Przy każdej zmianie kodu możesz sprawdzić czy czegoś nie rozwaliłeś
- Testy stają się dokumentacja kodu
Zalety TDD :
- Unikasz przeinżeniorowania
- Fajnie by było gydby każda aplikacja Legacy miała testy
AntyWzorce TDD:
- Zależność pomiędzy testami
- Testowanie detali implementacyjnych
- Powolne testy
Ograniczenia TDD:
- Możliwe dziury w testach
- TDD w samo sobie nie jest wystarczające
Aby mieć pewność, że wszystko jest w porządku, z twoją aplikacją musisz także
- Sprawdzać proces wdrażania samej aplikacji na serwer lub na chmurę
- Patrzyć na zmiany w sieci?
- Mieć testy integracyjne, czyli całościowe
Ograniczenia TDD:
Potrzeba wsparcia zarządu i innych programistów
Pytania o TDD:
- Czy Agile jest wymagany do TDD?
- Czy naprawdę muszę pisać testy najpierw?
DEMO : Entity Framework i ASP.NET CORE
Frameworki Unit Test:
- MSTest
- NUnit
- xUnit
Czy można pisanie testów zautomatyzować?