Testovanie
Pomocné metódy sú obyčajné statické a inštančné metódy, takže testovanie vašich enumov nepotrebuje žiadne fakes. Niekoľko vzorov, ktoré sa oplatí prevziať:
use App\Enums\NewsCategory;
use Illuminate\Support\Facades\Lang;
it('labels every category', function () {
expect(NewsCategory::labels()->all())
->toBe(['Hot News', 'Regular News', 'Private News']);
});
it('keeps the validation rule in sync with the cases', function () {
expect(NewsCategory::validationRule())
->toBe('in:hot-news,regular-news,private-news');
});
it('uses the translated label', function () {
Lang::addLines(['*.Hot News' => 'Breaking'], 'en', '*');
expect(NewsCategory::HotNews->label())->toBe('Breaking');
});
it('picks a real case at random', function () {
expect(NewsCategory::cases())->toContain(NewsCategory::random());
});
it('rejects an unknown category', function () {
$this->postJson('/articles', ['title' => 'Launch day', 'category' => 'breaking-news'])
->assertJsonValidationErrors('category');
});random() je náhodná zo svojej podstaty — overujte príslušnosť do cases(), nie konkrétny prípad. Overenia popisov idú cez prekladač, takže preložené popisy otestujete pridaním riadkov cez Lang::addLines() (JSON riadky používajú skupinu *).
Testy samotného balíka
Prispievatelia spúšťajú testy v Peste a statickú analýzu z koreňa balíka:
composer test
composer analysePrejavte 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.