Цього тижня команда Laravel випустила версію 12.38.0, яка включає нові функції, зокрема тестові трейти WithCachedRoutes та WithCachedConfig, новий запит для команди model:show та інше.
Люк Кузміш запропонував трейти WithCachedRoutes, які дозволяють один раз створити маршрути і зберігати їх у пам’яті. Це економить час, оскільки маршрути генеруються лише один раз для всіх тестів у вашій тестовій сукупності:
use App\Http\Controllers\UserController;
use Illuminate\Foundation\Testing\WithCachedRoutes;
use Tests\TestCase;
// Pest
pest()->use(WithCachedRoutes::class);
test('basic example', function () {
$this->get(action([UserController::class, 'index']));
// ...
});
// PHPUnit
class BasicTest extends TestCase
{
use WithCachedRoutes;
/**
* Основний функціональний тест.
*/
public function test_basic_example(): void
{
$response = $this->get(action([UserController::class, 'index']));
// ...
}
}
Деталі можна знайти у Pull Request #57623.
Люк Кузміш також запровадив трейти WithCachedConfig, що створює налаштування вашого додатка один раз і повторно використовує їх у всіх тестах:
use Illuminate\Foundation\Testing\WithCachedConfig;
use Tests\TestCase;
// Pest
pest()->use(WithCachedConfig::class);
test('modifies config', function () {
config(['services.postmark.key' => 'xyz']);
expect(config('services.postmark.key'))->toBe('xyz');
});
test('uses default config', function () {
expect(config('services.postmark.key'))->not->toBe('xyz');
});
// PHPUnit
class ConfigTest extends TestCase
{
use WithCachedConfig;
/**
* Тест, що модифікує налаштування.
*/
public function test_modifies_config(): void
{
$this->assertEquals('xyz', config('services.postmark.key'));
}
/**
* Тест, що не змінює налаштування.
*/
public function test_uses_default_config(): void
{
$this->assertNotEquals('xyz', config('services.postmark.key'));
}
}
Деталі за посиланням: Pull Request #57663.
Разін Шайх оновив команду model:show, щоб вона запитувала введення, якщо команду запущено без аргументів. Ось приклади до і після:
Деталі у Pull Request #57671.
Повний список нових функцій і оновлень ви можете переглянути нижче, а також різницю між версіями 12.37.0 та 12.38.0 на GitHub. Нотатки про реліз взято з журналу змін:
configurationIsCached() від @cosmastech у Pull Request #57665WithCachedRoutes від @cosmastech у Pull Request #57623