Testovanie
Keďže migrácie sú len na publikovanie, balík postavený na toolkite musí vo svojej testovacej sade spustiť migrácie explicitne — napríklad v TestCase z Orchestra Testbench:
use Orchestra\Testbench\TestCase as Orchestra;
abstract class TestCase extends Orchestra
{
protected function getPackageProviders($app): array
{
return [CommentsServiceProvider::class];
}
protected function defineDatabaseMigrations(): void
{
// Migrations are publish-only — the package's own suite loads them explicitly.
$this->loadMigrationsFrom(__DIR__.'/../database/migrations');
}
}Zaregistrujte tam aj svoj provider, aby builder, makrá a direktívy bootovali presne ako v hostiteľskej aplikácii. Potom asertujte cez verejné API — strážcovia konfigurácie vyhadzujú výnimky, LIKE makro berie zástupné znaky doslovne a podmienené Blade direktívy vykreslia správnu vetvu:
use Illuminate\Support\Facades\Blade;
use RoundlyConsulting\PackageToolkit\Exceptions\InvalidConfigurationException;
use RoundlyConsulting\PackageToolkit\Support\Config;
it('rejects an out-of-range page size', function (): void {
config()->set('comments.per_page', 500);
Config::integer('comments.per_page', 20, min: 1, max: 100);
})->throws(InvalidConfigurationException::class, 'between 1 and 100');
it('treats user wildcards literally', function (): void {
Comment::query()->create(['body' => 'hello world']);
Comment::query()->create(['body' => 'he%lo there']);
expect(Comment::query()->whereLikeEscaped('body', '%lo')->pluck('body')->all())
->toBe(['he%lo there']);
});
it('renders the else branch of the conditional directive', function (): void {
$output = Blade::render('@commentsEnabled($flag) on @else off @endcommentsEnabled', ['flag' => false]);
expect(trim($output))->toBe('off');
});Vlastná sada toolkitu sa spúšťa cez composer test, proti testovaciemu balíku, ktorý precvičí každú metódu buildera aj každý voliteľný trait.
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.