تست در مسیر ABAP

یاد بگیرید چگونه تمرین‌های ABAP خود را در Exercism تست کنید


در Exercism

هر تمرین به شکل یک کلاس ABAP واحد (با یک یا چند متد) در اختیار شما قرار می‌گیرد. معمولاً تعریف متدها همراه با پارامترهای ورودی و خروجی داده می‌شود. وظیفه‌ی شما این است که پیاده‌سازی متد را بر اساس مشخصات تمرین کامل کنید.

وقتی کدی را که می‌خواهید تست کنید آماده شد، گزینه‌ی «Run Tests» را انتخاب کنید. با این کار اجرای یک کلاس تست ABAP متناظر آغاز می‌شود و نتایج پس از چند ثانیه نمایش داده می‌شوند. اگر خطایی وجود داشت، به کد خود برگردید و آن را بر همین اساس اصلاح کنید. اگر همه‌ی تست‌ها پاس شوند، تبریک می‌گوییم! شما تمرین را کامل کرده‌اید و می‌توانید راه‌حل خود را ارسال کنید.

رفع اشکال

در پشت صحنه، کد ABAP شما با چیزی که به آن abaplint transpiler می‌گویند کامپایل و اجرا می‌شود. این راه‌حل هنوز نسبتاً تازه است. اگر مشکلی داشتید که نتوانستید حلش کنید، لطفاً یک issue در GitHub ایجاد کنید.

Debug و لاگ‌گیری

هنگام اجرای تمرین‌های ABAP در وب‌سایت Exercism، هیچ ابزار اشکال‌زدایی در دسترس نیست. همین می‌تواند تشخیص دلیل شکست تست‌ها را دشوار کند. با این حال، راه هوشمندانه‌ای برای ثبت داده‌ها در کدتان وجود دارد (توجه: این روش در هیچ سیستم ABAP کار نمی‌کند).

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

تمرین بدون ثبت لاگ

برای اینکه اشکال‌زدایی ساده‌تر شود، یک یا چند فراخوانی console=>log() اضافه کنید و هر داده‌ی میانی را به متد بدهید. استفاده از خطوط جدید (\n) به ساخت‌یافتن خروجی کمک می‌کند. وقتی تست‌ها را اجرا کنید، خروجی کنسول را در نتایج تست می‌بینید:

تمرین همراه با ثبت لاگ

توجه: خروجی کنسول فقط برای تست‌های ناموفق قابل مشاهده است. اگر می‌خواهید راه‌حل خود را منتشر کنید، بهتر است دستورهای لاگ را حذف کنید تا نسخه‌ی منتشرشده‌ی شما برای سایر اعضای انجمن خواناتر باشد.

روی سیستم خودتان

ترک کامل

ساده‌ترین راه برای شروع تمرین روی سیستم خودتان این است که این مخزن را با abapGit کلون کنید. با این کار، استاب‌ها و کلاس‌های تست همه‌ی تمرین‌های موجود ساخته می‌شوند.

تمرین‌های جداگانه

ABAP Development Tools را باز کنید (یا اگر سیستم قدیمی‌تری دارید، تراکنش‌های SE24 یا SE80 را اجرا کنید) و یک کلاس ABAP جدید بسازید که اسمش مانند اسم کلاس موجود در تمرین باشد. سپس با کپی کردن کد از وب‌سایت Exercism، استاب کلاس و کلاس تست را هم پیاده‌سازی کنید.

پیاده‌سازی راه‌حل

حالا می‌توانید کلاس یک تمرین را ویرایش کنید و راه‌حلی پیاده‌سازی کنید. سپس تست‌های واحد ABAP را اجرا کنید تا ببینید همه‌ی تست‌ها را پاس می‌کند یا نه. وقتی کار تمام شد و با موفقیت تست شد، کدتان را بردارید و در ویرایشگر تمرین در وب‌سایت Exercism بچسبانید. آنجا هم تست‌ها را اجرا کنید.

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

وقتی در سیستم خودتان کد می‌زنید و تست می‌کنید، از کامپایلر و محیط اجرای استاندارد SAP ABAP استفاده می‌شود. اگر تست‌هایتان شکست می‌خورند، احتمالاً مشکل به کد خودتان مربوط است. یک بار دیگر نگاهی بیندازید.

اگر کدتان با موفقیت از پس تست‌های واحد بربیاید، پیاده‌سازی کلاس را بردارید و در تمرین روی وب‌سایت Exercism بچسبانید و گزینه‌ی «Run Tests» را انتخاب کنید. البته آنجا هم تست‌ها باید پاس شوند. اگر این‌طور نشد، بخش رفع اشکال را در بالا ببینید.