آزمایش تمرین‌ها در مسیر MoonScript

یاد بگیرید چگونه تمرین‌های MoonScript خود را در Exercism آزمایش کنید.


تست کردن در ترک MoonScript دقیقاً مثل تست کردن در ترک Lua است. از داخل پوشه‌ی یک تمرین، این را وارد کنید:

$ busted

تست‌های در انتظار

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

برای فعال کردن تست‌ها، دستور یک تست را از pending به it تغییر دهید.

اگر از آن دسته افرادی هستید که دوست دارید همیشه همه‌ی تست‌ها را اجرا کنید، می‌توانید از یک ابزار خط فرمان استفاده کنید تا همه‌شان را یک‌جا تغییر دهید. این نمونه‌ای است با استفاده از perl (که تقریباً همه‌جا نصب است):

$ perl -i -pe 's/^\s+\Kpending\b/it/' two_fer_spec.moon

وقتی در ویرایشگر آنلاین کار می‌کنید، اجراکننده‌ی تست به‌طور خودکار همه‌ی تست‌ها را اجرا می‌کند.

استفاده از LuaRocks

خود Lua زبان بسیار کوچکی است. LuaRocks مدیر بسته‌ی ماژول‌های Lua است.

در راه‌حل‌های خود می‌توانید از هر ماژولی استفاده کنید، اما همه‌ی آن‌ها در اجراکننده‌ی تست آنلاین در دسترس نخواهند بود. اجراکننده‌ی تست این موارد را فراهم می‌کند:

از قبل به‌عنوان وابستگی‌های busted در دسترس است

  • penlight (صفحه‌ی اصلی)

    Penlight مجموعه‌ای از کتابخانه‌های خالص Lua است که کار با کارهای رایجی مثل پیمایش پوشه‌ها، خواندن فایل‌های پیکربندی و مواردی از این دست را ساده‌تر می‌کند. عملیات تابعی روی جدول‌ها و دنباله‌ها ارائه می‌دهد.

  • dkjson (صفحه‌ی اصلی)

    dkjson ماژولی برای رمزگذاری و رمزگشایی داده‌های JSON است.

از قبل به‌عنوان وابستگی‌های MoonScript در دسترس است

  • LPeg (صفحه‌ی اصلی)

    LPeg کتابخانه‌ی جدیدی برای تطبیق الگو در Lua است که بر پایه‌ی گرامرهای عبارات تجزیه‌ای (PEGها) ساخته شده است.

  • LuaFileSystem (صفحه‌ی اصلی)

    LuaFileSystem راهی قابل‌حمل برای دسترسی به ساختار پوشه‌ها و ویژگی‌های فایل ارائه می‌دهد.

تاریخ و زمان

  • date (گیت‌هاب)

    تجزیه‌ی رشته‌ی تاریخ و زمان؛ جمع و تفریق زمان؛ محاسبه‌ی بازه‌ی زمانی؛ پشتیبانی از تاریخ‌های ISO 8601.

  • lua-tz (گیت‌هاب)

    Lua TZ توابع تاریخ و زمان را با پشتیبانی از منطقه‌ی زمانی فراهم می‌کند. توابع اصلی رابطی شبیه به توابع استاندارد os.date و os.time دارند، اما علاوه بر آن یک آرگومان منطقه‌ی زمانی هم می‌پذیرند.

  • luatz (گیت‌هاب)

    کتابخانه‌ای Lua برای کار با زمان و تاریخ.