Acredito que uma das coisas mais importantes ao se aprender uma nova linguagem é a fazer testes nela. Isso porque, com testes, podemos validar rapidamente e, mais importante, de forma automática o que acabamos de escrever.
Em Haskell, pelo que vi, a melhor opção é o HSpec. Uma alternativa seria o HUnit, mas basta uma olhada rápida nos exemplos pra perceber que o HSpec é muito mais legível e prático.
##Instalando
Você pode obter o HSpec pelo cabal
com o comando
##Escrevendo os testes A escrita dos testes são bem simples, um exemplo de arquivo de teste
considerando que estamos testando as funções do arquivo
Ou seja, no nosso arquivo de teste precisamos importar o Teste.Hspec
e demais módulos necessários.
Os describe
servem para que agrupemos os testes que pertencem a mesmas categorias (isso facilitará a leitura ao executarmos). Cada it
, idealmente, terá apenas uma asserção.
Nesse exemplo foi usado apenas a função shouldBe
para validarmos as expectativas, mas o HSpec tem outras, como shouldSatisfy
e shouldThrow
.
#Executando os testes Para executarmos os testes basta rodarmos o comando
com isso obteremos uma saída como
#Observações sobre os códigos Ao importar um módulo o recomendado é trazer apenas o que será usado, como
Assim teremos acesso apenas ao que pedimos e evitamos possíveis ocorrências ambíguas (ao importar tudo de todos os módulos há uma grande chance de haver dois módulos que definiram alguma função com mesmo nome).
um workaraound para evitar referência ambígua é usar o hiding
, como em
Mas se importarmos apenas o aquilo que precisamos, esse tipo de coisa não será necessária. No caso do Prelude
não temos escolha, pois ele sempre será carregado em seus testes.
Comments