نسخه:

تست: شروع به کار

معرفی

لاراول با آزمایش در ذهن ساخته شده است. در واقع، پشتیبانی از آزمایش با PHPUnit خارج از جعبه گنجانده شده است و یک phpunit.xml فایل از قبل برای برنامه شما تنظیم شده است. این فریم ورک همچنین با روش‌های کمکی راحت ارائه می‌شود که به شما امکان می‌دهد برنامه‌های خود را به طور واضح آزمایش کنید.

به طور پیش فرض، دایرکتوری برنامه شما tests شامل دو دایرکتوری است: Feature و Unit . تست های واحد تست هایی هستند که بر روی بخش بسیار کوچک و جدا شده از کد شما تمرکز می کنند. در واقع، اکثر آزمون‌های واحد احتمالاً بر روی یک روش متمرکز هستند. آزمایش‌های ویژگی ممکن است بخش بزرگ‌تری از کد شما را آزمایش کنند، از جمله نحوه تعامل چندین شی با یکدیگر یا حتی یک درخواست HTTP کامل به نقطه پایانی JSON.

یک ExampleTest.php فایل در هر دو دایرکتوری Feature و Unit تست ارائه شده است. پس از نصب یک برنامه جدید لاراول، phpunit در خط فرمان اجرا کنید تا تست های شما اجرا شود.

محیط

هنگام اجرای تست ها از طریق ، لاراول به دلیل متغیرهای محیطی که در فایل تعریف شده است، phpunit به طور خودکار محیط پیکربندی را تنظیم می کند . لاراول همچنین به طور خودکار جلسه و حافظه پنهان را در هنگام آزمایش برای درایور پیکربندی می‌کند، به این معنی که هیچ جلسه یا داده‌ای از حافظه پنهان در حین آزمایش باقی نمی‌ماند. testing phpunit.xml array

در صورت لزوم می توانید مقادیر پیکربندی محیط آزمایشی دیگر را تعریف کنید. متغیرهای testing محیط ممکن است در phpunit.xml فایل پیکربندی شده باشند، اما مطمئن شوید که کش پیکربندی خود را با استفاده از config:clear دستور Artisan قبل از اجرای آزمایشات خود پاک کنید!

علاوه بر این، می توانید یک .env.testing فایل در ریشه پروژه خود ایجاد کنید. این فایل .env هنگام اجرای آزمایش‌های PHPUnit یا اجرای دستورات Artisan با این گزینه، فایل را لغو می‌کند --env=testing .

ایجاد و اجرای تست ها

برای ایجاد یک تست جدید، از make:test دستور Artisan استفاده کنید:

// Create a test in the Feature directory...
php artisan make:test UserTest
 
// Create a test in the Unit directory...
php artisan make:test UserTest --unit

هنگامی که تست تولید شد، می توانید روش های تست را همانطور که معمولا با استفاده از PHPUnit تعریف می کنید، تعریف کنید. برای اجرای تست های خود، phpunit دستور را از ترمینال خود اجرا کنید:

<?php
 
namespace Tests\Unit;
 
use PHPUnit\Framework\TestCase;
 
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$this->assertTrue(true);
}
}

setUp اگر متدهای / خود را tearDown در یک کلاس آزمایشی تعریف می‌کنید، حتماً متدهای parent::setUp() / مربوطه parent::tearDown() را در کلاس والد فراخوانی کنید.