Testes na trilha de MoonScript

Aprenda a testar seus exercícios de MoonScript no Exercism


Testar na trilha MoonScript é exatamente como testar na trilha Lua. Em um diretório de exercício, digite:

$ busted

Testes pendentes

Esta trilha segue a metodologia de Desenvolvimento Guiado por Testes do Exercism. Você recebe uma suíte de testes completa, mas só o primeiro teste está "ativo".

Para habilitar os testes, mude o comando de um teste de pending para it.

Se você gosta de rodar todos os testes o tempo todo, pode usar uma ferramenta de linha de comando para mudar todos de uma vez. Veja um exemplo usando perl (que está instalado em praticamente todo lugar):

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

Quando você estiver trabalhando no editor online, o executor de testes vai rodar todos os testes automaticamente.

Usando LuaRocks

Lua, por si só, é uma linguagem muito pequena. LuaRocks é o gerenciador de pacotes de módulos Lua.

Você pode usar qualquer módulo nas suas soluções, mas nem todos estarão disponíveis no executor de testes online. O executor de testes oferece estes:

Já disponíveis como dependências do busted

  • penlight (home)

    Penlight é um conjunto de bibliotecas de Lua pura que facilitam tarefas comuns, como iterar sobre diretórios, ler arquivos de configuração e afins. Oferece operações funcionais sobre tabelas e sequências.

  • dkjson (home)

    dkjson é um módulo para codificar e decodificar dados JSON.

Já disponíveis como dependências do MoonScript

  • LPeg (home)

    LPeg é uma biblioteca nova de casamento de padrões para Lua, baseada em Gramáticas de Expressões de Análise (PEGs).

  • LuaFileSystem (home)

    LuaFileSystem oferece uma forma portável de acessar a estrutura de diretórios subjacente e os atributos de arquivos.

Data e hora

  • date (github)

    Análise de strings de data e hora; soma e subtração de tempo; cálculo de intervalos de tempo; suporta datas no formato ISO 8601.

  • lua-tz (github)

    Lua TZ fornece funções de data e hora com suporte a fusos horários. As funções principais têm uma interface semelhante às funções padrão os.date e os.time, mas também aceitam um argumento de fuso horário.

  • luatz (github)

    Uma biblioteca de Lua para manipulação de data e hora.