Дізнайтеся, як тестувати свої вправи з MoonScript на Exercism
Тестування в треку MoonScript відбувається точно так само, як тестування в треку Lua. З каталогу вправи виконайте:
$ busted
Цей трек дотримується методології Exercism розробки через тестування. Ми отримуємо повний набір тестів, але «активний» лише перший тест.
Щоб увімкнути тести, змініть команду тесту з pending на it.
Якщо хочеться постійно запускати всі тести, можна скористатися інструментом командного рядка, щоб змінити їх усі одразу. Ось приклад із perl (він встановлений майже всюди):
$ perl -i -pe 's/^\s+\Kpending\b/it/' two_fer_spec.moon
Коли ми працюємо в онлайн-редакторі, тест-раннер автоматично запускає всі тести.
Lua сама по собі - дуже невелика мова. LuaRocks - це менеджер пакетів для модулів Lua.
У своїх рішеннях можна вільно використовувати будь-який модуль, але не всі вони будуть доступні в онлайн-тест-раннері. Тест-раннер надає такі модулі:
Уже доступні як залежності busted
Penlight - це набір бібліотек, написаних чистою Lua, які спрощують роботу з типовими завданнями, як-от перебирання каталогів, читання файлів конфігурації тощо. Надає функціональні операції над таблицями та послідовностями.
dkjson - це модуль для кодування та декодування даних JSON.
Уже доступні як залежності MoonScript
LPeg - це нова бібліотека зіставлення зі зразками для Lua, заснована на граматиках аналізу виразів (PEG).
LuaFileSystem (домашня сторінка)
LuaFileSystem пропонує портативний спосіб доступу до базової структури каталогів і атрибутів файлів.
Дата й час
Розбір дати й часу з рядків тексту (англ. string); додавання й віднімання часу; обчислення проміжків часу; підтримка дат ISO 8601.
Lua TZ надає функції дати й часу з підтримкою часових зон. Основні функції мають інтерфейс, схожий на стандартні функції os.date і os.time, але додатково приймають аргумент часової зони.
Бібліотека Lua для роботи з часом і датами.