Aprende a testar os teus exercícios de MoonScript no Exercism
Testar na track do MoonScript é exatamente igual a testar na track do Lua. A partir do diretório de um exercício, escreve:
$ busted
Esta track segue a metodologia de Desenvolvimento Orientado por Testes do Exercism. Recebes um conjunto de testes completo, mas só o primeiro teste está "ativo".
Para ativares os testes, muda o comando de um teste de pending para it.
Se gostas de correr todos os testes o tempo todo, podes usar uma ferramenta de linha de comandos para os mudar todos de uma vez. Aqui está um exemplo com o perl (que está instalado em praticamente todo o lado):
$ perl -i -pe 's/^\s+\Kpending\b/it/' two_fer_spec.moon
Quando estás a trabalhar no editor online, o test runner corre todos os testes automaticamente.
O Lua, por si só, é uma linguagem muito pequena. O LuaRocks é o gestor de pacotes de módulos Lua.
Podes usar qualquer módulo nas tuas soluções, mas nem todos estarão disponíveis no test runner online. O test runner disponibiliza estes:
Já disponíveis como dependências do busted
O Penlight é um conjunto de bibliotecas Lua puras que facilitam tarefas comuns, como iterar sobre diretórios, ler ficheiros de configuração e afins. Fornece operações funcionais sobre tabelas e sequências.
O dkjson é um módulo para codificar e descodificar dados JSON.
Já disponíveis como dependências do MoonScript
O LPeg é uma nova biblioteca de correspondência de padrões para Lua, baseada em Gramáticas de Expressão de Análise (PEGs).
O LuaFileSystem oferece uma forma portável de aceder à estrutura de diretórios subjacente e aos atributos dos ficheiros.
Data e hora
Análise de strings de data e hora; adição e subtração de tempo; cálculo de intervalos de tempo; suporta datas ISO 8601.
O Lua TZ fornece funções de data e hora com suporte para fusos horários. As funções principais têm uma interface semelhante às funções padrão os.date e os.time, mas aceitam ainda um argumento de fuso horário.
Uma biblioteca Lua para manipulação de tempo e data.