phpunit ، چیست ؟! چرا از آن استفاده کنیم ؟ چگونه از آن استفاده کنیم ؟

PHPUnit یک library مستقل برای تست واحد PHP است. unit testing روشی است که توسط آن واحد های کوچک کد در برابر نتایج مورد انتظار آزمایش می شوند. در تست سنتی، یک برنامه را به عنوان یک کل آزمایش می کند ، به این معنی که اجزای جزئی به ندرت به تنهایی آزمایش می شوند. این می تواند باعث شود خطاها برای مدت طولانی کشف نشوند و جداسازی علت یک اشکال خاص در کد مشکل است. با تست واحد ، ما هر مؤلفه کد را بصورت جداگانه آزمایش می کنیم. همه اجزاء حداقل یک بار قابل آزمایش هستند. مهمترین مزیت این رویکرد این است که تشخیص زود هنگام اشکالات آسان تر می شود. دامنه کوچک به معنای ساده تر کردن علت اشکالات هنگام بروز آسان تر است. به عنوان نمونه تصور کنید که ما یک وب سایت فروشگاهی داریم. ممکن است این امر را با باز کردن سایت در مرورگر ، جستجوی محصول و سپس اضافه کردن این سبد و بررسی کل سبد ، همانطور که انتظار داریم ، این تست را سنتی انجام دهیم. اگر قرار بود این فرآیند را آزمایش کنیم ، می توانستیم یک تست بنویسیم تا اطمینان حاصل شود که می توانیم کالای خاصی را جستجو کنیم ، دیگری را بنویسید تا اطمینان حاصل کنیم که می توانیم یک محصول را به سبد اضافه کنیم و سپس یک تست برای اطمینان از اینکه مبلغ کل سبد به درستی است.
این روزها بیشتر فریم ورک های مدرن PHP شامل Laravel ، Symfony و CakePHP از phpunit بهره میبرند . سیستمهای مدیریت محتوا از جمله وردپرس و دروپال نیز از آن برای تست استفاده میکنند .
نوشتن تست ها می تواند سخت باشد و نوشتن تست های خوب حتی سخت تر نیز خواهد بود. من فکر می کنم یک قیاس خوب از کد unit test ، ورزش بدنی است. در ابتدا به نظر می رسد ایده خوبی است ، اما برای شروع کار باید انگیزه خود را ایجاد کنید. در کوتاه مدت می تواند بی فایده به نظر برسد زیرا شما نتوانستید شاهد پیشرفت های اساسی باشید. اما پس از آن در دراز مدت شروع به دیدن مزایای بارز می کنید.
پس چه مزایای از unit testing است؟
اولا ، refactor را برای ما آسانتر می کند. با گذشت زمان پروژه ها تغییر می کنند. تست های واحد اطمینان به ما می دهد که به روزرسانی در کد عملکردهای موجود را که قبلاً به طور کامل آزمایش شده است ، خراب نمی کند. ما می توانیم کد فعلی را اصلاح کنیم و تست های خود را اجرا کنیم تا اطمینان حاصل کنیم که هنوز همانطور که در ابتدا در نظر گرفته شده عمل می کند.
آزمایش واحد همچنین می تواند به debugging سریعتر منجر شود ، زیرا جدا کردن علت اشکال با مشخص کردن محل عدم موفقیت ، آسان تر است. هنگامی که اشکالات در کد ما نشان داده می شوند ، می توانیم تست هایی را نیز بنویسیم تا اطمینان حاصل شود که این موارد شناخته شده ،در آینده ما را اذیت نخواهند کرد . من فکر می کنم این نکته آخر بسیار مهم است؛ من بارها دیده ام که چندین توسعه دهنده بر روی یک قطعه کد کار می کنند و به دلیل عدم درک همه موارد استفاده از یک روش ، اشکالات به عقب می روند.
این تست ها می توانند مستندات لازم را در اختیار برنامه قرار دهند زیرا استفاده از کد مورد انتظار را مستند می کند. اگر بخشی از کد یک پروژه تازه وارد هستید باید بتوانید به تست های مربوطه مراجعه کنید تا نتایج مورد انتظار عملکرد این برنامه را ببینید.
یک مورد که آزمایش واحد انجام نمی دهد ، ریشه کن کردن همه اشکالات یک برنامه است. با این حال ، باید آنها را کاهش داد و از تکرار اشکالات شناخته شده جلوگیری کرد.
دیدگاهتان را بنویسید