Testen im MoonScript-Track

Lerne, wie du deine MoonScript-Übungen auf Exercism testest


Das Testen auf dem MoonScript-Track läuft genau so ab wie das Testen auf dem Lua-Track. Gib in einem Übungsverzeichnis Folgendes ein:

$ busted

Ausstehende Tests

Dieser Track folgt der Test-Driven Development-Methodik von Exercism. Du bekommst eine vollständige Testsuite, aber nur der erste Test ist „aktiv“.

Um die Tests zu aktivieren, änderst du den Befehl eines Tests von pending zu it.

Wenn du gerne immer alle Tests ausführen möchtest, kannst du sie mit einem Kommandozeilen-Tool auf einmal umstellen. Hier ist ein Beispiel mit perl (das so gut wie überall installiert ist):

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

Wenn du im Online-Editor arbeitest, führt der Test Runner automatisch alle Tests aus.

LuaRocks verwenden

Lua allein ist eine sehr kleine Programmiersprache. LuaRocks ist der Paketmanager für Lua-Module.

Du kannst in deinen Lösungen jedes Modul verwenden, aber nicht alle davon sind im Online-Test-Runner verfügbar. Der Test Runner stellt diese bereit:

Bereits als busted-Abhängigkeiten verfügbar

  • penlight (Homepage)

    Penlight ist eine Sammlung reiner Lua-Bibliotheken, die die Arbeit mit alltäglichen Aufgaben erleichtert, etwa das Durchlaufen von Verzeichnissen oder das Lesen von Konfigurationsdateien. Es bietet funktionale Operationen für Tabellen und Sequenzen.

  • dkjson (Homepage)

    dkjson ist ein Modul zum Kodieren und Dekodieren von JSON-Daten.

Bereits als MoonScript-Abhängigkeiten verfügbar

  • LPeg (Homepage)

    LPeg ist eine neue Bibliothek für den Musterabgleich in Lua, die auf Parsing Expression Grammars (PEGs) basiert.

  • LuaFileSystem (Homepage)

    LuaFileSystem bietet eine portable Möglichkeit, auf die zugrunde liegende Verzeichnisstruktur und Dateiattribute zuzugreifen.

Datum und Uhrzeit

  • date (github)

    Parsen von Datums- und Zeit-Strings; Addieren und Subtrahieren von Zeiten; Berechnen von Zeitspannen; Unterstützt ISO-8601-Datumsangaben.

  • lua-tz (github)

    Lua TZ bietet Datums- und Zeitfunktionen mit Unterstützung für Zeitzonen. Die Kernfunktionen haben eine Schnittstelle, die den Standardfunktionen os.date und os.time ähnelt, akzeptieren aber zusätzlich ein Argument für die Zeitzone.

  • luatz (github)

    Eine Lua-Bibliothek zur Manipulation von Zeit und Datum.