Mahmoud Al-HabashOpen to new projects
  • WorkWork
  • ServicesServices
  • LabLab
  • WritingWriting
  • ContactContact
Amman--:--عربي
Writing/Laravel

Laravel Pest Testing: Modern PHP Testing

Write expressive tests with Pest, the elegant PHP testing framework.

16 January 20261 min readLaravelاقرأ بالعربية

On this page

  1. Basic Test
  2. Expectations
  3. Higher Order Tests
  4. Datasets

Modern testing with Pest:

Basic Test

php
it('can create a user', function () {
    $user = User::factory()->create();
    expect($user)->toBeInstanceOf(User::class);
});

Expectations

php
expect($value)->toBe('something');
expect($array)->toHaveCount(3);
expect($user->email)->toContain('@');

Higher Order Tests

php
it('has a name')
    ->expect(fn() => User::factory()->create())
    ->name->not->toBeEmpty();

Datasets

it('validates emails', function ($email, $valid) {
    expect(filter_var($email, FILTER_VALIDATE_EMAIL))->toBe($valid);
})->with([
    ['test@example.com', true],
    ['invalid', false],
]);
All articles

Keep reading

  • Laravel Action Classes Pattern16 January 20261 min read
  • Laravel Action Classes: Single Responsibility16 January 20261 min read
  • Laravel API Rate Limiting16 January 20261 min read