آموزش تست کنترلرها و مدلها در لاراول
لاراول از PHPUnit برای نوشتن تستها استفاده میکنه. ما میتونیم تستهای مختلفی برای کنترلرها و مدلها بسازیم:
🧪 ۱. تست کنترلرها (Feature Test)
▶️ ساخت فایل تست
فایل در مسیر
tests/Feature/PostControllerTest.phpایجاد میشه.
✍️ تست لیست پستها
✍️ تست ذخیرهسازی پست
🧪 ۲. تست مدلها (Unit Test)
▶️ ساخت تست مدل
فایل در مسیر
tests/Unit/PostModelTest.phpساخته میشه.
✍️ تست ارتباطات مدل
مثلاً فرض کن مدل Post یک ارتباط belongsTo با User داره:
✍️ تست ویژگیهای مدل
🧪 اجرای تستها
📦 جمعبندی
| نوع تست | ابزار | مسیر تستها |
|---|---|---|
| کنترلر | Feature Test | tests/Feature/ |
| مدل | Unit Test | tests/Unit/ |
فرض کنیم API برای مدیریت Post داریم، و کاربرها با استفاده از JWT لاگین میکنن.
🧩 پیشنیاز
-
از پکیج
tymon/jwt-authاستفاده میکنیم:
-
مدل User باید از
JWTSubjectپیروی کنه.
✅ ساخت تست Feature
✍️ محتوای فایل tests/Feature/PostApiJwtTest.php
🧪 اجرای تست
🛡 نکات امنیتی
-
تمام درخواستها با
Authorization: Bearer TOKENارسال میشن. -
برای routeهای محافظتشده از middleware زیر استفاده کن:
📦 جمعبندی عملیاتهای تستشده
| عملیات | مسیر | متد | توضیح |
|---|---|---|---|
| ایجاد پست | /api/posts | POST | با توکن JWT |
| لیست پستها | /api/posts | GET | دریافت JSON |
| ویرایش پست | /api/posts/{id} | PUT | با احراز هویت |
| حذف پست | /api/posts/{id} | DELETE | حذف امن |