A classe junit.framework.Assert provê outros métodos além do AssertTrue. Todos são sobrecarregados para especificar uma mensagem no primeiro parâmetro, caso queira.
Veja-os:
- assertEquals(Object expected, Object actual): Verifica se "expected" é igual a "actual". Ele também é sobrecarregado para algumas classes e tipos nativos, como a classe String e o tipo double;
- assertFalse(boolean condition): Verifica se "condition" é falsa;
- assertTrue(boolean condition): Verifica se "condition" é verdadeira;
- assertNotNull(Object object): Verifica se "object" não é nulo. Ele é um atalho para "assertTrue(object!=null);";
- assertNull(Object object): Verifica se "object" é nulo;
- assertSame(Object expected, Object actual): Verifica se "expected" referencia a "actual". Note que este método verifica as referências, não os objetos propriamente ditos;
- assertNotSame(Object expected, Object actual): Verifica se "expected" não referencia a "actual". Este método também compara as referências, não os objetos propriamente ditos.
Com todos esses métodos você pode verificar o que quiser, que eles disparam uma exceção, com uma mensagem formatada caso não ocorra como você espera.
Métodos da classe junit.framework.TestCase que podem ser sobrecarregados
A classe junit.framework.TestCase provê alguns métodos que podem ser sobrecarregados:
- setUp: executa algum código antes dos testes;
- tearDown: executa algum código depois dos testes.
Os métodos apresentados acima podem ser úteis para fazer algo antes dos testes serem iniciados / terminados. Por exemplo, o método setUp pode iniciar uma conexão com a internet, enquanto o método tearDown pode ser usado para fechar a conexão com a internet. Esses métodos são protected, não retornam nada e não fazem nada por padrão.
Sobrecarregando o método setUp
O método setUp pode ser sobrecarregado para fazer algo antes dos testes serem iniciados. Por exemplo, podemos separar a inicialização do objeto math de sua declaração.
Antes:
private Matematica math=new Matematica(4, 2);
Depois:
private Matematica math;
@Override protected void setUp()
{
this.math=new Matematica(4, 2);
}
Pode testar, o teste funcionará da mesma forma que o primeiro.
Eu, particularmente, acho essa maneira mais interessante, o código fica mais bonito na minha opinião.
Bom, é isso.
Espero que este artigo possa ajudar muita gente que deseja fazer testes unitários, e que ele possa ser útil para alguém.