Δοκιμές στη διαδρομή MoonScript

Μάθε πώς να δοκιμάζεις τις ασκήσεις σου στη διαδρομή MoonScript στο Exercism


Τα τεστ στο track MoonScript είναι ακριβώς όπως τα τεστ στο track Lua. Από τον κατάλογο μιας άσκησης, πληκτρολόγησε:

$ busted

Εκκρεμή τεστ

Αυτό το track ακολουθεί τη μεθοδολογία Ανάπτυξη καθοδηγούμενη από τεστ του Exercism. Σου δίνεται μια πλήρης σουίτα τεστ, αλλά μόνο το πρώτο τεστ είναι "ενεργό".

Για να ενεργοποιήσεις τα τεστ, άλλαξε την εντολή ενός τεστ από pending σε it.

Αν σου αρέσει να τρέχεις όλα τα τεστ όλη την ώρα, μπορείς να χρησιμοποιήσεις ένα εργαλείο γραμμής εντολών για να τα αλλάξεις όλα μαζί. Να ένα παράδειγμα με τη perl (η οποία είναι εγκατεστημένη σχεδόν παντού):

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

Όταν δουλεύεις στον online editor, ο test runner θα εκτελέσει αυτόματα όλα τα τεστ.

Χρήση του LuaRocks

Η Lua από μόνη της είναι μια πολύ μικρή γλώσσα. Το LuaRocks είναι ο διαχειριστής πακέτων για τις μονάδες της Lua.

Είσαι ελεύθερος να χρησιμοποιήσεις οποιαδήποτε μονάδα στις λύσεις σου, αλλά δεν θα είναι όλες διαθέσιμες στον online test runner. Ο test runner παρέχει τα εξής:

Διαθέσιμα ήδη ως εξαρτήσεις του busted

  • penlight (αρχική σελίδα)

    Το Penlight είναι ένα σύνολο βιβλιοθηκών καθαρής Lua που κάνουν πιο εύκολη τη δουλειά με συνηθισμένες εργασίες, όπως η επανάληψη πάνω σε καταλόγους, η ανάγνωση αρχείων ρυθμίσεων και τα παρόμοια. Παρέχει συναρτησιακές λειτουργίες σε πίνακες και ακολουθίες.

  • dkjson (αρχική σελίδα)

    Το dkjson είναι μια μονάδα για την κωδικοποίηση και αποκωδικοποίηση δεδομένων JSON.

Διαθέσιμα ήδη ως εξαρτήσεις του MoonScript

  • LPeg (αρχική σελίδα)

    Το LPeg είναι μια νέα βιβλιοθήκη αντιστοίχισης μοτίβων για τη Lua, βασισμένη στα Parsing Expression Grammars (PEGs).

  • LuaFileSystem (αρχική σελίδα)

    Το LuaFileSystem προσφέρει έναν μεταφέρσιμο τρόπο πρόσβασης στην υποκείμενη δομή καταλόγων και στα χαρακτηριστικά αρχείων.

Ημερομηνία και ώρα

  • date (github)

    Ανάλυση συμβολοσειρών ημερομηνίας και ώρας; Πρόσθεση και αφαίρεση χρόνου; Υπολογισμός χρονικών διαστημάτων; Υποστηρίζει ημερομηνίες ISO 8601.

  • lua-tz (github)

    Το Lua TZ παρέχει συναρτήσεις ημερομηνίας και ώρας με υποστήριξη ζωνών ώρας. Οι βασικές συναρτήσεις έχουν διεπαφή παρόμοια με τις τυπικές συναρτήσεις os.date και os.time, αλλά δέχονται επιπλέον ένα όρισμα ζώνης ώρας.

  • luatz (github)

    Μια βιβλιοθήκη Lua για χειρισμό χρόνου και ημερομηνίας.