Nakon ovog poglavlja
Što ćete znati napraviti
- Primijeniti dosljedan stil i male odgovornosti.
- Razlikovati statičku analizu, unit, integracijski i feature test.
- Dizajnirati ovisnosti koje se u testu mogu zamijeniti.
Čitljivost je značajka
Imena, male cjeline i očit tok
Kod se češće čita nego piše. Ime treba otkriti namjeru, funkcija raditi jednu stvar, a komentar objasniti zašto odluka postoji. Dupliciranje ponekad je jeftinije od pogrešne apstrakcije; izdvojite zajednički kod kada je zajednički koncept stabilan.
PSR-12 daje zajednički stil, ali formatter rješava samo oblik. Arhitektonska jasnoća dolazi iz granica i odgovornosti.
Više sigurnosnih mreža
Lint, formatter i statička analiza
php -l hvata sintaksu. PHP_CodeSniffer ili PHP-CS-Fixer provjerava stil. PHPStan ili Psalm prate tipove i tokove koje runtime deklaracije same ne mogu otkriti. Analizu uvodite postupno, ali novom kodu ne spuštajte prag.
{
"scripts": {
"lint": "php -l public/index.php",
"analyse": "phpstan analyse",
"test": "phpunit"
}
}
Dokaz ponašanja
Brzi test pravila, realan test integracije
Unit test izolira malu poslovnu cjelinu. Integracijski test provjerava suradnju s bazom ili datotečnim sustavom. Feature test šalje zahtjev kroz aplikaciju. Najviše vrijednosti daju testovi važnih pravila, ovlasti i rubnih slučajeva, ne slijepo povećavanje postotka pokrivenosti.
<?php
public function test_cannot_publish_article_without_title(): void
{
$article = Article::draft('');
$this->expectException(InvalidArgumentException::class);
$article->publish();
}
Primijenite naučeno
Vježba: Testirajte kalkulator i autorizaciju
Dodajte testove na dva mjesta s različitim rizikom.
- Provjerite izračun cijene za nulu, popust i zaokruživanje.
- Provjerite da korisnik ne može urediti tuđu bilješku.
- Pokrenite cijeli skup jednom naredbom.
Za provjeru i nastavak