Praktyka Programowania
Unit tests, TDD, Nose, Code Coverage
Dlaczego Python ?
Agile Manifesto
XP, Scrum, TDD, BDD, SpecByExample...
Manifest
Clean code that works - now.
Unit Test
A unit is the smallest testable part of an application.
xUnit
W uproszczeniu:
Jest to konkretna architektura systemu testów.
- Test Suite
- Test Case
- Setup
- Teardown
- Asercje
Proces
Co? Jak? Gdzie?
Red
Green
Refactor
while True:
pisz_testy()
uruchom_testy()
pisz_kod()
uruchom_testy()
popraw_jakosc_kodu()
uruchom_testy()
if program_skonczony():
break
Zalety
- Siatka bezpieczeństwa (ang. safety net)
- Małe kroki (dziel-i-rządź)
- Poprawa jakości kodu może odbywać się bezboleśnie
- Żywa dokumentacja
- Continuous Integration, Delivery
Wady
- Nie wybacza braku doświadczenia
(false positives)
- Wymaga olbrzymiego doświadczenia
- Dla niektórych to wada: Kata
- No dobra, ale od czego mam zacząć?
Mity
- Lepsza architektura i lepsze API
- Lepsza jakość kodu
- Pisze-w-TDD-więc-moje-testy-są-super
- To tylko testy, tu jakość kodu się nie liczy