Calculadora de cordas
Uma calculadora de string simples usando TDD Kata
Propósito
Aprenda a usar o Desenvolvimento Orientado a Testes para criar um programa.
Descrição
Este kata foi criado por Roy Osherove e foi projetado para ajudá-lo a aprender codificação e refatoração TDD.
Tente não ler adiante – faça uma tarefa de cada vez. Trabalhe de forma incremental.
Passos de Kata
- Crie uma calculadora String com um método int Add(string numbers)
- O método pode receber 0, 1 ou 2 números e retornará sua soma.
- Uma string vazia retornará 0.
- Entradas de exemplo:
“”, “1”, or “1,2”
- Comece com o caso de teste mais simples de uma string vazia. Então 1 número. Depois 2 números.
- Lembre-se de resolver as coisas da maneira mais simples possível, forçando-se a escrever testes para coisas nas quais você não pensou.
- Lembre-se de refatorar após cada teste aprovado.
- Permita que o método Add manipule um número desconhecido de argumentos/números.
- Permita que o método Add manipule novas linhas entre números (em vez de vírgulas).
- Exemplo:
“1n2,3”
deve retornar 6. - Exemplo:
“1,n”
é inválido, mas você não precisa de teste para este caso. - Teste apenas as entradas corretas – não há necessidade de lidar com entradas inválidas para este kata.
- Chamar Add com um número negativo lançará uma exceção “Negativos não permitidos:“ listando todos os números negativos que estavam na lista de números.
- Exemplo
“-1,2”
gera “Negativos não permitidos: -1” - Exemplo
“2,-4,3,-5”
gera “Negativos não permitidos: -4,-5”
- Números maiores que 1000 devem ser ignorados.
- Exemplo:
“1001,2”
retorna 2
- Permita que o método Add manipule um delimitador diferente:
- Para alterar o delimitador, o início da string conterá uma linha separada semelhante a esta:
“//[delimiter]n[numbers]”
- Exemplo:
“//;n1;2”
deve retornar 3 (o delimitador é ;) - Esta primeira linha é opcional; todos os cenários existentes (usando ou n) devem funcionar como antes.