4. Proč testovat?
• Stabilnější codebase
• Méně bugů
• Lépe se provádí změny / upgrades
• Bezpečnější vývoj v týmu
• Testy jako dokumentace business logiky
• Produktivnější vývoj (API, …)
• Jednodušší debugging
• Dobře testovatelný kód bývá lépe
strukturován …
6. Co testovat?
• Kód s “větší náchylností na chyby”
• Kód, jehož chybovost je dražší na opravu
• Kód blíže k business logice
• Přístupný přes formuláře, API, CLI, …
• Kód, kde se již začali objevovat chyby
• Kód, kde je složitější odhalit případné
chyby - crons, asynchronní handlers
7. Jak testovat?
• Zkuste různé frameworky, jeden se
naučte dobře
• Zjednodušte si budoucí práci
• Když je lehké testy psát, spíše se
nepřeskočí
• Je zábavnější vytvářet kód pro
podporu testování, když nemáte
deadline
• Spouštějte testy na CI serveru
• Pište kód, který je lépe testovatelný
12. Fixtures - zenstruck/foundry
“Foundry makes creating
f
ixtures data fun
again, via an expressive, auto-completable,
on-demand
f
ixtures system with Symfony and
Doctrine.”
Kevin Bond
(zenstruck)
25. Browser tests, další funkce
• Integrace opravdového prohlížeče (přes Symfony/Panther)
• Možnost pořizovat fotky
• Přístup k JS konzoli
• Rozšiřitelnost (vlastní browser třída)
• Přístup k chybovým stránkám
• JMESPath expressions
28. PHPUnit - data providers
https://blog.martinhujer.cz/how-to-use-data-providers-in-phpunit/
29. PHPUnit - Test coverage
XDEBUG_MODE=coverage ./bin/phpunit
--coverage-html ./phpunit-coverage
30. Rekapitulace
• Testovat se vyplatí
• Testování může být zábava,
např. s pomocí správných nástrojů
• Třeba zjednodušit všechny 3 “áčka”
• Arrange, Act, Assert
• Né všechen kód se vyplatí testovat,
třeba se zaměřit na ty důležité části
31. Děkuju za pozornost
Michal Majer / 53. sraz přátel PHP, 1.12.2022
E-mail: majermi4@gmail.com
Twitter: @MichalMajer15
Péhápkáři Slack: @majermi4
Prezentace ke stažení