Тестування на треку 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 (github)

    Розбір дати й часу з рядків тексту (англ. string); додавання й віднімання часу; обчислення проміжків часу; підтримка дат ISO 8601.

  • lua-tz (github)

    Lua TZ надає функції дати й часу з підтримкою часових зон. Основні функції мають інтерфейс, схожий на стандартні функції os.date і os.time, але додатково приймають аргумент часової зони.

  • luatz (github)

    Бібліотека Lua для роботи з часом і датами.