Open source
Testing for Laravel
composer require --dev roundly-consulting/testing-for-laravelPrehľad
Testovacie nástroje pre Laravel balíky aj aplikácie, určené výhradne na vývoj a postavené tak, aby každá asercia vždy dokázala zlyhať. Obsahujú základný test case nad Testbench, štrukturálnu kontrolu poradia migrácií, spúšťač migrácií na reálnej databáze s negatívnou kontrolou, obojsmerný konfiguračný kontrakt, bezpečné zachytenie príkazu about, dôkaz výmeny modelu, kontrolu kontraktu fasády, záznamníky zámkov, maticu databázových driverov a deväť architektonických presetov — každý vznikol po skutočnej chybe, ktorú nezachytil test neschopný zlyhať. Inštalujete ho cez composer require --dev: bez service providera, nič z neho nebeží v produkcii, licencia MIT a žiadne závislosti okrem oficiálnych komponentov Laravelu, Pestu a Testbench.
Čo získate
Kontrola poradia migrácií
Načíta cudzie kľúče zo zdrojového kódu migrácií a overí, že rodičovské tabuľky vznikajú skôr — zlyhá už na SQLite, nielen na Postgrese.
Spúšťač na reálnej databáze
Aplikuje migrácie na živom Postgrese či MySQL s negatívnou kontrolou, ktorá dokáže, že engine chybné poradie odmietne.
Obojsmerný konfiguračný kontrakt
Každý čítaný kľúč je v konfigurácii a každý dodaný kľúč sa aj číta — zistené z tokenov PHP a Blade kódu, nikdy nie regexom.
Bezpečné zachytenie about
Skôr než overí, že neunikajú prístupové údaje, vyžaduje pozitívny dôkaz, že sa výstup about naozaj vykreslil.
Dôkaz výmeny modelu
Spustí reálny tok a overí konkrétnu triedu aj udalosti created každého modelu, ktorý má výmena vytvoriť.
Záznamník zámkov a matica driverov
Zviditeľní lockForUpdate() aj hĺbku transakcie na SQLite a spúšťa testy aj na reálnych databázových engine-och.
Kontrakt fasády a arch presety
Pripnite kontrakt fasáda → manažér → akcie — zdokumentovaný, s fake a s dosiahnuteľnou každou akciou — plus deväť jednoriadkových Pest arch presetov.
Dokumentácia
Inštalácia
Inštalácia ako vývojová závislosť; Pest expectations sa zaregistrujú samy cez Pest plugin balíka.
Základný test case pre balíky
PackageTestCase: SQLite v pamäti so zapnutými cudzími kľúčmi, migrácie podľa providera, výmena modelu pred bootom a reset bez down().
Kontrola poradia migrácií
Načíta cudzie kľúče zo zdrojového kódu migrácií a overí, že rodičovská tabuľka vzniká skôr — štrukturálna kontrola, ktorá zlyhá aj na SQLite.
Migrácie na reálnej databáze
Aplikujte migrácie na živom Postgrese či MySQL a dokážte, že engine chybné poradie odmietne — bez enginu sa test viditeľne preskočí.
Migrácie len na publikovanie
Overte, že balík publikuje migrácie s časovou pečiatkou a zároveň ich automaticky nenačítava — chyba duplicitnej tabuľky ako test.
Konfiguračný kontrakt
Overte obojsmerne, že konfigurácia obsahuje presne kľúče, ktoré kód číta — z PHP tokenov, s kontrolovanými výnimkami a režimom pre aplikácie.
Bezpečné zachytenie about
Zachyťte sekciu artisan about, dokážte, že sa vykreslila, a až potom overte, že neuniká žiadny prístupový údaj.
Dôkaz výmeny modelu
Spustite reálny tok a dokážte, že každý vytvorený model je podtrieda hostiteľa — podľa konkrétnej triedy a udalostí created, nie instanceof.
Kontrakt fasády
Pripnite kontrakt fasáda → manažér → akcie — zdokumentovaný koreň, skutočný fake, dosiahnuteľná každá akcia a modely vedené cez fasádu.
Architektonické presety
Deväť jednoriadkových Pest arch presetov — strict types, final ako predvolba, miesto výmeny modelov, politika závislostí, modely cez fasádu a ďalšie.
Výnimky z presetov
Výnimky zadávajte cez kontrolovaný parameter $ignoring, nie cez ->ignoring() — a ako sa prefixové výnimky overia za vás.
Záznamník zámkov
Zviditeľnite lockForUpdate() a hĺbku transakcie na SQLite — cez trait modelu alebo zaznamenávajúcu gramatiku.
Matica databázových driverov
Spúšťajte testy na SQLite, Postgrese či MySQL podľa premenných TESTING_DB_*, s izolovanými sondami a hotovou CI vetvou.
Použitie v aplikáciách
Tie isté asercie v bežnej Laravel aplikácii — bez balíka a bez zmeny základnej triedy — cez Pest alebo statické Assert.
Požiadavky
PHP 8.4+, Laravel 12 alebo 13 a Pest 4; Testbench 10 alebo 11 sa nainštaluje s ním. Inštalujte len do require-dev.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.