Guia da prática de tdd
Problema a ser usado: (Diamantes) Dado uma letra ('A' a 'Z'), exiba um diamante iniciando em 'A' e tendo a letra fornecida com o ponto mais distante. (http://dojopuzzles.com/problemas/exibe/diamantes)
Por exemplo, dado a letra 'E' temos: A B B C C D D
E E D D C C B B A
Dado a letra 'C' temos: A B B
C C B B A
Passos:
1. Crie um projeto no eclipse com o nome Diamante 2. Crie uma classe “JUnit Test Case” no pacote “com.testes” e dê o nome de “DiamantesTest” a. Isso já cria um teste que falha. Rode o teste e veja vermelho!
@Test
public void test() { fail("Not yet implemented");
}
3. Apague a linha “fail("Not yet implemented");” e rode novamente. Veja o resultado verde 4. Vamos fazer nosso primeiro teste. Vamos testar se nosso programa está lendo certo a letra passada no teclado. Para isso, transforme o método test em testaEntradaCorreta.
@Test
public void testaEntradaCorreta() { Diamante diamante = new Diamante(); diamante.leEntrada(); assertEquals("A",diamante.getEntrada());
}
Vai dar erro de compilação, pois a classe Diamante não existe. Crie a classe Diamante e os métodos leEntrada e getEntrada vazios. Rode e veja vermelho. 5. Implemente o método leEntrada para receber um caractere do teclado. public void leEntrada() { System.out.println("Escolha uma letra de A a Z"); try { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String linha = ""; linha = reader.readLine(); linha = linha.toUpperCase(); if(!linha.matches("[A-Z]")){ System.out.println("Entrada no formato errado!"); this.entrada = null; } else { this.entrada = linha; } } catch (IOException e) { System.out.println("Erro: "+ e); }
}
public String getEntrada() { return this.entrada;
}
Veja o teste verde 6. Faça testaEntradaErrada e teste a entrada com um valor diferente de letra