راستش همین اول موضوع اشاره کنم که تست نویسی و درست کردن Mock خودش چالش زیادی داره و واقعاٌ دیگه حوصله برای بعضی کارهای روتین نمیمونه و این شد به فکر افتادم که چطوری میتونم کامند هایی که برای اجرای تست ها دارم دستی تایپ میکنم ( خیلی از مواقع هم اشتباه تایپی پیش میاد) رو به یه شیوه ساده تر انجام بدم و این کار به صورت اتوماتیک انجام بشه و چون قبلاٌ ها با ماکروها زیاد کار کرده بودم دیدم که داخل PhpStorm هم این امکان وجود داره و میتونی ماکرو خودتو تعریف کنی تا یک سری از کار هارو برات انجام بده تو ادامه این مقاله آموزش درست کردن ماکرو برای تست نویسی در لاراول رو با شما به اشتراک میذارم.

تعریف ماکرو به روایت ویکی پدیا ( تا حدودی درسته) :

یک کلان‌دستور یا ماکرو (به انگلیسی: macro) در علوم رایانه یک الگو یا قاعده است که مشخص می‌کند چگونه بر اساس یک فرایند از قبل معین شده، یک ترتیب ورودی بخصوص (که معمولا ترتیبی از نویسه‌ها هستند) باید به یک ترتیب خروجی جایگزین‌شده (که آن نیز معمولا ترتیبی از نویسه‌ها می باشد) نگاشت(تناظر) یابد.

شروع کنیم
  • قدم اول : در اولین قدم باید یک ماکرو برای خودمون ضبط کنیم که از طریق مسیر زیر میشه این کار رو کرد (در نظر داشته باشید که دکمه استارت رو زدید شروع به ضبظ میکنه پیشنهاد میکنم اول مقاله رو کامل بخونید بعد این کار رو انجام بدید تا با مشکلی مواجه نشید) Edit -> Macros -> Start Macro Recording

عکس - مرحله اول: مرحله اول

بعد این کار چون من برای تست میخوام این کار رو انجام بدم و این کار هم داخل کامند انجام میشه میایم بعد این که رکورد رو زدیم کلید های ترکیبی Alt + F12 رو فشار میدیم تا ترمینال PhpStorm باز بشه بعد داخلش ترمینال کامند اجرای تست رو مینویسیم و Enter رو فشار میدیم تا اجرا بشه به شکلی که در تصویر زیر میبینید:

عکس - مرحله دوم: مرحله دوم

بعد این کار میایم دوباره به مسیر Edit -> Macros -> Stop Recording Macro و روی Stop Recording Macro کلیک میکنیم که بعد یک پنجره باز میشه و از ما میخواد یک اسم برای ماکرو خودمون ایجاد کنیم هر اسمی رو دوست داشتید میتونید قرار بدید ( پیشنهاد اینه که اسمی رو بذارید که بعداٌ که خواستید مراجعه کنید بفهمید که چه کاری رو براتون انجام میده)

خب تا اینجا برامون کافیه و میتونید با مراجعه به قسمت ماکرو ها ماکرو خودمون رو روش کلیک کنیم و استفاده کنیم ولی بازم کار مارو سریعتر نکرد این کار (اگر خودمون تایپ میکردیم بهتر بود خب :) )

برای اون هم راه حل هست که بیایم براش کِی بایند KeyBind یا کِی مپ Keymap یا شورت کات Shortcut تعریف کنیم که البته این کار به 3 روش انجام میشه :

  • Add Keyboard Shortcut (میتونیم از کلید یا کلید های ترکیبی داخل کیبورد استفاده کنیم)
  • Add Mouse Shortcut (میتونیم از کلید های ماوس های حرفه ای استفاده کنیم)
  • Add Abbreviation (میتونیم از کوته نوشته ها استفاده کنیم (البته اگر ترجمه فارسیش درست هست))

این مواردی که بالا گفته شد برای این موضوع هست که بدون مراجعه به اون مسیر ماکرو ها براشون کلید هایی تعریف کنیم که هر موقع اون کلید هارو فشار دادیم اون ماکرو برامون اجرا بشه یعنی ( به صورت اتوماتیک بره ترمینال رو برامون باز کنه و اون دستور تست رو برامون تایپ کنه و بعد اینتر رو بزنه و ما نتیجه رو مشاهده کنیم)

اما برای تعریف این ها باید به مسیر Setting -> Keymap -> Macro -> PhpUnit البته اون Phpunit که آخر نوشتم اسمی هست که من برای ماکرو خودم گذاشتم شما اسم خودتون رو اونجا میتونید مشاهده کنید و بعد روش راست کلیک کنید و اون 3 تا گزینه که بالا گفتم رو مشاهده کنید

عکس - مرحله سوم: مرحله سوم

بعد این که یکی از گزینه ها رو انتخاب کردید (پیشنهاد میشه که کیبورد رو استفاده کنید) یک پنجره باز میشه و میگه که کلید های خودتون رو تعریف کنید حالا من در عکس پایین کلید ترکیبی Alt + A رو استفاده کردم شما میتونید هر کلیدی که دوست داشتید انتخاب کنید .

  • نکته بعضی از کلید های ترکیبی که میخواهید استفاده کنید برای خود Php Storm استفاده شده و اونجا بهتون هشدار میده که اون کلید ترکیبی که میخواهید استفاده کنید برای فلان کار هست پیشنهاد میکنم از اون کلید های ترکیبی استفاده نکنید.

عکس - مرحله چهارم: مرحله چهارم

بعد این که اوکی رو زدیم به راحتی هر جایی که هستیم در Php Storm اون کلید ترکیبی رو اگر بزنیم ماکرویی که ضبط کردیم رو برامون اجرا میکنه به همین راحتی .

در ضمن شما میتونید گزینه های دیگه رو تست کنید که مثلاٌ یک کوته نوشته تعریف کنید که من برای خودم کلمه amin رو تعریف کردم که که اگر در موقع سرچ amin سرچ بشه تو نتایج میاره و اگر روش کلیک شد اون ماکرو رو اجرا میکنه