تکنولوژی نوین اینترنتی
PHPUnit یک فریمورک تستنویسی برای زبان PHP است که به شما این امکان را میدهد تا تستهای واحد (Unit Tests) و تستهای یکپارچه (Integration Tests) را برای کدهای خود بنویسید. در لاراول، PHPUnit بهطور پیشفرض برای انجام تستهای مختلف موجود است و به راحتی میتوانید از آن برای تستکردن بخشهای مختلف اپلیکیشن استفاده کنید.
در این مقاله، نحوه استفاده از PHPUnit در لاراول را توضیح خواهیم داد و نحوه نوشتن و اجرای تستهای مختلف را بررسی میکنیم.
لاراول بهطور پیشفرض پکیج PHPUnit را در خود دارد و نیازی به نصب جداگانه آن نیست. فقط کافی است که در زمان نصب لاراول، PHPUnit بهطور خودکار به پروژه شما اضافه میشود. شما میتوانید نسخه PHPUnit را در فایل composer.json
مشاهده کنید:
برای نصب این پکیج از دستور زیر استفاده کنید:
در لاراول، شما میتوانید با استفاده از دستور artisan
، تستهای مختلف را به راحتی ایجاد کنید.
برای ایجاد یک کلاس تست، از دستور زیر استفاده کنید:
این دستور یک کلاس تست جدید در مسیر tests/Feature
ایجاد میکند. اگر بخواهید تستهای واحد (Unit Test) ایجاد کنید، میتوانید از دستور زیر استفاده کنید:
این دستور تستها را در مسیر tests/Unit
ایجاد میکند.
در فایلهای تست ایجاد شده، شما میتوانید از متدهای PHPUnit برای نوشتن تستها استفاده کنید.
در فایل tests/Feature/ExampleTest.php
میتوانید یک تست ساده مانند زیر بنویسید:
در این مثال، یک درخواست GET به مسیر /
ارسال میشود و بررسی میشود که آیا وضعیت پاسخ ۲۰۰ (OK) است یا خیر.
اگر بخواهید یک فرم را تست کنید، میتوانید اطلاعات ورودی ارسال کنید و پاسخ را بررسی کنید.
تستهای Feature برای تستهای سطح بالاتر مانند تعاملات بین بخشهای مختلف اپلیکیشن (مثلاً ارسال درخواستها، بررسی پاسخها و ریدایرکتها) استفاده میشوند. این تستها در مسیر tests/Feature
ذخیره میشوند.
تستهای Unit برای تستهای جداگانه و واحد کد (مثل تست یک متد خاص) استفاده میشوند. این تستها معمولاً در مسیر tests/Unit
قرار دارند و تمرکز دارند بر روی تست منطق و عملکرد دقیق یک بخش از کد.
برای اجرای تستها، کافی است که دستور phpunit
را در ترمینال وارد کنید:
این دستور تمام تستهای موجود در پوشه tests
را اجرا خواهد کرد. اگر میخواهید فقط تستهای یک فایل خاص را اجرا کنید، میتوانید نام فایل را به دستور بدهید:
لاراول به شما این امکان را میدهد که در تستهای خود از پایگاه داده نیز استفاده کنید. برای این کار، از ویژگی database migrations لاراول بهره میبرید.
لاراول به طور خودکار یک پایگاه داده موقتی برای هر تست ایجاد میکند. اگر نیاز دارید تا از آن در تستهای خود استفاده کنید، میتوانید از متد artisan migrate
برای اجرای مایگریشنها استفاده کنید.
در این حالت، لاراول به طور خودکار پایگاه داده موقتی را برای تستها تنظیم میکند.
لاراول به شما این امکان را میدهد که برای تستهای مربوط به درخواستهای غیرهمزمان (Asynchronous) نیز از قابلیتهایی مانند assertSee
و assertDontSee
استفاده کنید.
فیکچرها در لاراول به شما کمک میکنند که دادههای ساختگی برای تستها تولید کنید. برای استفاده از فیکچرها، میتوانید از دستور artisan make:factory
برای ایجاد یک فیکچر جدید استفاده کنید:
سپس میتوانید از آن برای تولید دادههای آزمایشی در تستها استفاده کنید:
PHPUnit در لاراول ابزاری قدرتمند برای نوشتن و اجرای تستها است. با استفاده از این فریمورک، میتوانید تستهای واحد و یکپارچه برای اپلیکیشن خود بنویسید و از صحت عملکرد آن اطمینان حاصل کنید. لاراول امکانات مختلفی مانند پایگاه داده موقتی، فیکچرها، و تستهای مربوط به درخواستها را برای راحتتر کردن فرآیند تستنویسی فراهم کرده است.