Aprende a probar tus ejercicios de MoonScript en Exercism
Hacer pruebas en el track de MoonScript es exactamente igual que hacer pruebas en el track de Lua. Desde el directorio de un ejercicio, escribe:
$ busted
Este track sigue la metodología de desarrollo guiado por pruebas de Exercism. Se te da un conjunto de pruebas completo, pero solo la primera prueba está «activa».
Para habilitar las pruebas, cambia el comando de una prueba de pending a it.
Si eres de los que les gusta ejecutar todas las pruebas todo el tiempo, puedes usar una herramienta de línea de comandos para cambiarlas todas a la vez. Aquí tienes un ejemplo con perl (que está instalado en casi todas partes):
$ perl -i -pe 's/^\s+\Kpending\b/it/' two_fer_spec.moon
Cuando trabajas en el editor en línea, el ejecutor de pruebas ejecutará automáticamente todas las pruebas.
Lua por sí solo es un lenguaje muy pequeño. LuaRocks es el gestor de paquetes de los módulos de Lua.
Eres libre de usar cualquier módulo en tus soluciones, pero no todos estarán disponibles en el ejecutor de pruebas en línea. El ejecutor de pruebas incluye estos:
Ya disponibles como dependencias de busted
Penlight es un conjunto de bibliotecas de Lua puras que facilitan el trabajo con tareas comunes como recorrer directorios, leer archivos de configuración y similares. Proporciona operaciones funcionales sobre tablas y secuencias.
dkjson es un módulo para codificar y decodificar datos JSON.
Ya disponibles como dependencias de MoonScript
LPeg es una nueva biblioteca de coincidencia de patrones para Lua, basada en gramáticas de expresiones de análisis (PEG).
LuaFileSystem ofrece una forma portable de acceder a la estructura de directorios subyacente y a los atributos de los archivos.
Fecha y hora
Análisis de cadenas de fecha y hora; suma y resta de tiempos; cálculo de intervalos de tiempo; compatible con fechas ISO 8601.
Lua TZ proporciona funciones de fecha y hora con soporte para zonas horarias. Las funciones principales tienen una interfaz similar a las funciones estándar os.date y os.time, pero además aceptan un argumento de zona horaria.
Una biblioteca de Lua para la manipulación de fechas y horas.