Concordion é uma ferramenta que usa uma abordagem por exemplos de comportamento (examples of behavior). O mais interessante é que escrevendo a especificação em alto nível e inserindo exemplos que englobam o comportamento esperado do código em todas as suas possibilidades ou nas possibilidades permitidas/esperadas, já está se escrevendo o teste para o sistema. Isso é possível escrevendo a especificação com o script Markdown ou com HTML.
Por exemplo, imagine a seguinte especificação:
Quebrador de Nomes
Para tornar os emails para clientes algo mais personalizado, deseja-se saber o primeiro nome e o último nome do cliente. No entanto, ao se cadastrar, o cliente informa o nome inteiro apenas.
O sistema, portanto, deve quebrar o nome em suas partes.
Exemplo
O nome Jane Smith deve ser quebrado no primeiro nome Jane e o último nome Smith.
Exemplo
O nome completo Sting deve ser quebrado apenas no primeiro nome Sting.
Exemplo
O nome completo Sir Bob Geldof deve ser quebrado em seu primeiro nome Bob e o último Geldof.
Exemplo
O nome Maria de los Santos deve ser quebrado em Maria e, como último nome, de los Santos.
O legal dessa especificação é que está bastante claro para o cliente e para o desenvolvedor, não deixando brechas para desentendimentos.
Por trás dessa especificação está um Markdown simples de escrever:
Através dos links no script, o código de teste:
cria o HTML e insere os resultados. No HTML gerado é possível ver se todos os testes foram executados, se houve erros e quando há, verificar o stack.
Para se divertir, esse é meu código para separador de nomes:
O projeto também pode ser baixado com o Git no seguinte repositório: https://leandro_stlima@bitbucket.org/leandro_stlima/concordion.git
No próximo post eu vou falar sobre as ferramentas de testes para banco de dados.
Para se divertir, esse é meu código para separador de nomes:
O projeto também pode ser baixado com o Git no seguinte repositório: https://leandro_stlima@bitbucket.org/leandro_stlima/concordion.git
No próximo post eu vou falar sobre as ferramentas de testes para banco de dados.