Sumar
- Introducere în testarea automată
- Configurarea mediului de test
- Teste unitare
- Teste Feature
- Mock-uri și baze de date
- Rularea testelor
- Concluzie
Introducere în testarea automată
Laravel vine cu suport integrat pentru testare folosind PHPUnit și oferă o sintaxă elegantă pentru testarea aplicațiilor.
Configurarea mediului de test
Fișierul .env.testing poate fi folosit pentru configurări separate.
Rulează migrațiile pentru test:
php artisan migrate --env=testing
Teste unitare
Creare test unitar:
php artisan make:test OrderServiceTest --unit
Exemplu:
public function test_order_total_is_calculated_correctly()
{
$order = new Order(['price' => 100, 'quantity' => 2]);
$this->assertEquals(200, $order->price * $order->quantity);
}
Teste Feature
Creare test feature:
php artisan make:test OrderTest
Exemplu:
public function test_user_can_create_order()
{
$user = User::factory()->create();
$response = $this->actingAs($user)->post('/orders', [
'name' => 'Test Order'
]);
$response->assertStatus(302);
$this->assertDatabaseHas('orders', ['name' => 'Test Order']);
}
Mock-uri și baze de date
Laravel oferă RefreshDatabase trait pentru resetarea bazei de date:
use Illuminate\Foundation\Testing\RefreshDatabase;
Pentru mock-uri:
$this->mock(OrderService::class, function ($mock) {
$mock->shouldReceive('process')->once();
});
Rularea testelor
php artisan test
Sau folosind PHPUnit:
vendor/bin/phpunit
Concluzie
Testarea automată în Laravel ajută la prevenirea regresiilor și la menținerea calității codului, oferind încredere în evoluția aplicației.