---
title: "Použitie v aplikáciách — Testing for Laravel | Roundly"
description: "Tie isté asercie v bežnej Laravel aplikácii — bez balíka a bez zmeny základnej triedy — cez Pest alebo statické Assert."
url: https://roundly-consulting.com/sk/open-source/navody/testing-for-laravel/pouzitie-v-aplikaciach
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Testing for Laravel](https://roundly-consulting.com/sk/open-source/navody/testing-for-laravel.md)

# Použitie v aplikáciách

Bežná Laravel aplikácia — bez Roundly balíka a bez zmeny základnej triedy — získa podmnožinu použiteľnú v aplikáciách cez Pest expectations alebo statické Assert, priamo vo svojej existujúcej sade:

```php
use RoundlyConsulting\Testing\Assert;

it('has a runnable migration order', function (): void {
    expect(database_path('migrations'))->toHaveRunnableMigrationOrder();
});

it('reads every services key it relies on from the shipped config', function (): void {
    // Forward-only: an app's config legitimately carries keys read by vendor packages.
    expect(config_path('services.php'))->toSatisfyConfigContract(app_path(), ['reverse' => false]);
});

it('does not leak credentials through artisan about', function (): void {
    // Only a secret that is set can be looked for — a null or empty entry throws.
    config(['services.stripe.secret' => 'sk_test_do_not_render_me']);

    expect('environment')->toLeakNoSecrets(
        secrets: [config('app.key'), config('services.stripe.secret')],
        mustRender: ['Application Name'],
    );
});
```

## Čo platí pre aplikácie

- Kontrola poradia migrácií, spúšťač na reálnej databáze a jeho negatívna kontrola.
- Konfiguračný kontrakt v režime len dopredu — spätný smer si zapnete sami.
- Bezpečné zachytenie about.
- Dôkaz výmeny modelu — aj aplikácie používajú modely balíkov vymeniteľné cez konfiguráciu, takže dokážete, že balík tretej strany výmenu naozaj rešpektuje.
- Záznamníky zámkov a DriverMatrix.
- Všetky architektonické presety. runtimeRequireIsWhitelisted obsahuje whitelist Roundly, no vďaka $alsoAllow je použiteľný aj on.

## Architektonické presety v aplikácii

noDebuggingLeftovers predvolene prehľadáva <cwd>/src, preto ho v aplikácii nasmerujte na app/:

```php
<?php

declare(strict_types=1);

use RoundlyConsulting\Testing\Arch\ArchPresets;

// tests/ArchTest.php in a Laravel application
ArchPresets::strictTypes('App');
ArchPresets::noDebuggingLeftovers(srcDir: __DIR__.'/../app'); // the default scans <cwd>/src
```

## Čisté PHPUnit: statické Assert

Každá expectation má statické zrkadlo v RoundlyConsulting\\Testing\\Assert pre testy postavené na triedach — vrátane toBeSwappableVia a kontraktu fasády. Obe volajú tú istú implementáciu, takže kontrola je rovnaká bez ohľadu na spôsob volania:

| Pest expectation | Statické zrkadlo |
| --- | --- |
| `toHaveRunnableMigrationOrder` | `Assert::migrationsRunInDependencyOrder($dir, $expectedForeignKeys, $tableResolvers, $externalTables)` |
| `toApplyOnConnection` | `Assert::migrationsApplyOnConnection($dir, $connection, $expectedMigrations)` |
| `toRejectBrokenOrderOnConnection` | `Assert::brokenOrderIsRejectedOnConnection($dir, $reorder, $connection)` |
| `toNotAutoLoadMigrations` | `Assert::doesNotAutoLoadMigrations($providerClass, $migrationsDir)` |
| `toPublishMigrationsTimestamped` | `Assert::publishesMigrationsTimestamped($providerClass, $tag, $count)` |
| `toSatisfyConfigContract` | `Assert::configContract($configPath, $srcDirs, $prefix, $options)` |
| `toLeakNoSecrets` | `Assert::aboutSectionLeaksNoSecrets($section, $secrets, $mustRender)` |
| `toHonourModelSwap` | `Assert::modelSwapHonoured($configKey, $subclass, $exercise, $expectsCreation)` |
| `toBeSwappableVia` | `Assert::modelIsSwappableVia($model, $configKey)` |
| `toDocumentItsRoot` | `Assert::facadeDocumentsItsRoot($facade, $except)` |
| `toBeFakeable` | `Assert::facadeIsFakeable($facade)` |
| `toReachEveryAction` | `Assert::facadeReachesEveryAction($facade, $actionsDir, $except, $via)` |
| `toRedactSensitiveArguments` | `Assert::facadeRedactsSensitiveArguments($facade, $methods)` |

```php
use PHPUnit\Framework\Attributes\Test;
use RoundlyConsulting\Testing\Assert;
use Tests\TestCase;

final class SchemaTest extends TestCase
{
    #[Test]
    public function migrations_run_in_dependency_order(): void
    {
        Assert::migrationsRunInDependencyOrder(database_path('migrations'));
    }

    #[Test]
    public function the_services_config_ships_every_key_the_app_reads(): void
    {
        Assert::configContract(config_path('services.php'), app_path(), options: ['reverse' => false]);
    }
}
```

## 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 kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/testing-for-laravel.md)
