تست: شروع به کار
معرفی
لاراول با آزمایش در ذهن ساخته شده است.
در واقع، پشتیبانی از آزمایش با PHPUnit خارج از جعبه گنجانده شده است و یک
phpunit.xml
فایل از قبل برای برنامه شما تنظیم شده است.
این فریم ورک همچنین با روشهای کمکی راحت ارائه میشود که به شما امکان
میدهد برنامههای خود را به طور واضح آزمایش کنید.
به طور پیش فرض، دایرکتوری برنامه شما
tests
شامل دو دایرکتوری است:
Feature
و
Unit
.
تست های واحد تست هایی هستند که بر روی بخش بسیار کوچک و جدا شده از کد شما
تمرکز می کنند.
در واقع، اکثر آزمونهای واحد احتمالاً بر روی یک روش متمرکز هستند.
آزمایشهای ویژگی ممکن است بخش بزرگتری از کد شما را آزمایش کنند، از جمله
نحوه تعامل چندین شی با یکدیگر یا حتی یک درخواست HTTP کامل به نقطه پایانی JSON.
یک
ExampleTest.php
فایل در هر دو دایرکتوری
Feature
و
Unit
تست ارائه شده است.
پس از نصب یک برنامه جدید لاراول،
vendor/bin/phpunit
در خط فرمان اجرا کنید تا تست های شما اجرا شود.
محیط
هنگام اجرای تست ها از طریق ، لاراول
به دلیل متغیرهای محیطی که در فایل تعریف شده است،
vendor/bin/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
یا
artisan test
را از ترمینال خود اجرا کنید:
<?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()
را در کلاس والد فراخوانی کنید.
دونده آزمون صنعتگر
علاوه بر
phpunit
دستور، می توانید از
test
دستور Artisan برای اجرای تست های خود استفاده کنید.
دونده آزمون Artisan اطلاعات بیشتری در مورد آزمایشی که در حال حاضر در حال
اجرا است ارائه می دهد و به طور خودکار در اولین شکست تست متوقف می شود:
php artisan test
هر آرگومان قابل انتقال به
phpunit
دستور ممکن است به دستور Artisan نیز منتقل شود
test
:
php artisan test --group=feature