آموزش قدم به قدم فریم ورک لاراول- قسمت ششم

 بازدید: 203
 تاریخ انتشار: ۱۴ خرداد، ۱۳۹۷، ۱۲:۰۰ ق.ظ
آموزش قدم به قدم فریم ورک لاراول- قسمت ششم

در بخش قبل از آموزش فریم ورک لاراول با استفاده از مثال ساخت دایرکتوری لینک یاد گرفتیم که برای ارسال فرم باید چه کدهایی را بنویسیم. وقت آن است که قابلیت ارسال فرم اپلیکیشنی را که ساخته ایم تست کنیم.

تست کردن ارسال فرم در فریم ورک لاراول

لاراول تست کردن HTTP را بخوبی برای عملکرد یکپارچه تست‌ها در برابر روت‌ها و میان افزار (middleware) انجام می‌دهد، بنابراین بیایید چند تست ویژگی بنویسیم تا ببینیم کدهای نوشته شده درست کار می‌کنند یا خیر.
قبل شروع باید چیزهای کوچکی را در فایل phpunit.xml تصحیح کنیم طوری که بتوانیم از یک پایگاه داده SQLite درون-حافظه استفاده کنیم. باید اطمینان حاصل کنید که ماژول‌های PHP مناسبی را نصب کرده‌اید.
با استفاده از محیط متغیرها می توانیم اتصال پایگاه داده را با افزودن کمی متغیر جدید به پیکربندی تغییر دهیم.

<php>
        <!-- ... -->
    <env name="DB_CONNECTION" value="sqlite"/>
    <env name="DB_DATABASE" value=":memory:"/>
        <!-- ... -->
</php>

سپس تست placeholder را که همراه لاراول حمل می شود حذف کنید:
rm tests/Feature/ExampleTest.php

اکنون آماده هستیم تا از طریق HTTP شروع به تست کردن /submit کنیم تا مطمئن شویم رووت، ذخیره سازی و بازگشت دادن آنطور که انتظار داریم کار می کنند.
اول یک تست ویژگی جدید را برای امتحان در برابر روت مربوطه ایجاد می کنیم.
php artisan make:test SubmitLinksTest

دستور یک فایل تست جدید با وابسته‌های مناسب ایجاد می کند، شامل یک خصیصه RefreshDatabase که برای ارزیابی ذخیره شدن لینک‌های معتبر در پایگاه داده استفاده می شود.
فایل tests/Feature/SubmitLinksTest.php را باز کنید و چند تست ساختاری را در بدنه طبقه‌ای که در نظر داریم تعریف کنید:
 
این تست ها دید سطح بالایی را نسبت به آنچه باید امتحان شود به ما می دهند و شامل بررسی پنج قسمت هستند:
1.    ارزیابی ذخیره شدن لینک‌های معتبر در پایگاه داده
2.    وقتی ارزیابی با خطا مواجه می شود لینک ها در پایگاه داده ذخیره نشوند.
3.    URL های نامعتبر مجاز نباشند
4.    وقتی فیلدها طولانی تر از قانون max:255 هستند خطا داده شود
5.    وقتی طول فیلدها کافی است ارزیابی موفق باشد.
در مقاله های بعدی با هر پنج قسمت آشنا خواهیم شد.