Perché Pest?
Pest offre una sintassi elegante e concisa per scrivere test, rendendo il TDD più piacevole.
Installazione
composer require pestphp/pest --dev --with-all-dependencies
php artisan pest:install
Scrivere Test con Pest
<?php
// tests/Feature/UserTest.php
it('creates a new user', function () {
$response = $this->post('/api/users', [
'name' => 'Giovanni',
'email' => 'giovanni@devgd.it',
'password' => 'password123'
]);
$response->assertStatus(201);
$this->assertDatabaseHas('users', [
'email' => 'giovanni@devgd.it'
]);
});
it('validates user data', function () {
$response = $this->post('/api/users', [
'name' => '',
'email' => 'invalid-email'
]);
$response->assertStatus(422)
->assertJsonValidationErrors(['name', 'email', 'password']);
});
test('user can login', function () {
$user = User::factory()->create([
'password' => bcrypt('password')
]);
$response = $this->post('/api/login', [
'email' => $user->email,
'password' => 'password'
]);
$response->assertOk()
->assertJsonStructure(['token']);
});
?>
Con Pest, i test sono più leggibili e veloci da scrivere rispetto a PHPUnit tradizionale!