PHPUnit فریم‌ورک آزمون PHP است و از Unit Test، Integration Test، Assertion، Data Provider و Mock پشتیبانی می‌کند. صرف اجرا شدن یک تست به معنای پوشش تمام مسیرهای خطا نیست.

نصب و اجرا

composer require --dev phpunit/phpunit
./vendor/bin/phpunit --version
./vendor/bin/phpunit tests

تست یک قانون فروشگاه

use PHPUnit\Framework\TestCase;
final class DiscountTest extends TestCase
{
    public function test_discount_for_vip_customer(): void
    {
        $discountedPrice = 200_000 * 0.9;
        $this->assertEqualsWithDelta(180_000, $discountedPrice, 0.001);
    }
}

در پروژه واقعی بهتر است تست روی کلاس یا سرویس واقعی نوشته شود و نه روی یک مقدار محاسبه‌شده محلی. Mock برای وابستگی بیرونی مانند درگاه پرداخت مناسب است اما استفاده بیش‌ازحد از Mock می‌تواند تست را به پیاده‌سازی وابسته کند.

سازگاری نسخه

نسخه PHPUnit را بر اساس نسخه PHP و سایر ابزارهای تست پروژه انتخاب کنید. برای نوشتار خواناتر می‌توان از Pest استفاده کرد.

اصطلاحات مرتبط: پست پی‌اچ‌پی، اسرشن، یونیت تست، ماکینگ.