A ideia é desenvolver um método utilitário. Seguindo as boas práticas e usando TDD.
As Ferramentas necessárias para o nosso trabalho:
- Java 1.6.0_29 (download);
- Netbeans 7.1 (download);
- JUnit 4.8.2 (download).
Vamos começar com uma ideia simples e desenvolver um método que tem como objetivo avaliar se uma String (java.lang.String) é nula (null) ou vazia (isEmpty()*) e aplicar os testes unitários necessários.
O primeiro passo é criar a classe Util (br.com.joelamalio.utilitario.segundopost.Util) no pacote código-fonte. Em seguida, devemos escrever apenas o código necessário para compilar o projeto.
package br.com.joelamalio.blogutilitario.segundopost;
/**
*
* @author joelamalio
*/
public class Util {
public static boolean isNullOrEmpty(String valor) {
//TODO implementar o método.
return false;
}
}
Depois criaremos a classe UtilTest (br.com.joelamalio.utilitario.segundopost.UtilTest) no pacote de testes e o nosso primeiro teste de unidade.
package br.com.joelamalio.blogutilitario.segundopost;
import org.junit.Assert;
import org.junit.Test;
/**
*
* @author joelamalio
*/
public class UtilTest {
@Test
public void testarSeAStringValorEhNulaEORetornoEhTrue() {
String valor = null;
boolean retorno = Util.isNullOrEmpty(valor);
Assert.assertTrue(retorno);
}
}
Quando executarmos o build do projeto, o Netbeans alertará um erro, informando que o valor da variável retorno é false e o mesmo deveria ser true, ou seja, o teste FALHOU.
Devemos refatorar o método testado para que ele PASSE. Após a primeira refatoração teremos:
public static boolean isNullOrEmpty(String valor) {
if (valor == null) {
return true;
}
return false;
}
Após um novo build o teste passará!
Agora já temos um método que valida se a nossa String é nula ou não. O próximo passo é verificar se a String está vazia. Vamos criar mais um teste.
@Test
public void testarSeAStringValorEhVaziaEORetornoEhTrue() {
String valor = "";
boolean retorno = Util.isNullOrEmpty(valor);
Assert.assertTrue(retorno);
}
Novamente o teste falhará e deveremos refatorar o método testado.
public static boolean isNullOrEmpty(String valor) {
if (valor == null) {
return true;
} else if (valor.isEmpty()) {
return true;
}
return false;
}
Ao efetuarmos as mudanças no código o teste passará!
E por último devemos testar se a String não está vazia.
@Test
public void testarSeAStringValorNaoEhVaziaEORetornoEhFalse() {
String valor = "@joelamalio";
boolean retorno = Util.isNullOrEmpty(valor);
Assert.assertFalse(retorno);
}
Código-fonte disponível no github
Assim termina o nosso segundo post.
Até breve.
_____
* Disponível desde o java 1.6.
Post muito legal.
ResponderExcluirParabéns.
Valeu Otávio. Irei tentar melhorar a cada contribuição...
Excluir