Você está na página 1de 3

UMC – ACET – SISTEMAS DE INFORMAÇÃO – TÓPICOS EM SISTEMAS I – TESTE DE SOFTWARE

ROTEIRO DE AULA PRÁTICA - TESTANDO ASSERÇÕES COM JUNIT

INTRODUÇÃO

Com o Junit é possível estipular que um teste tenha um tempo máximo para ser executado, o qual,
caso ultrapassado deverá provocar uma falha no teste. Por exemplo caso seja desejável que um teste
não demore mais que 500 milisegundos pode-se realizar a seguinte anotação, mostrada entre
parênteses logo após @Test no código abaixo:

@Test(timeout = 500)
public void fastTestCase() {
Assert.assertEquals(1500, calendar.getSize());
}

Uma anotação das mais importantes para testes unitários permite verificar se um método está
retornando uma exceção (Exception). Essa funcionalidade é importante por exemplo para se
determinar se o sistema está realmente tratando exceções e/ou validando erros internos. No exemplo
a seguir, entre parênteses, logo após a anotação @Test, vê-se como dizer ao JUnit que se deseja
saber quando a classe em teste disparou uma exceção do tipo NullPointerException:

@Test(expected=NullPointerException.class)
public void testException(int input) {
int month = 4;
Assert.assertNotNull(calendar.getAllDays(month));
}

Os asserts determinam se uma condição de teste foi atendida ou não. Para ver os tipos de asserts
bem como suas utilizações acesse:  https://github.com/junit-team/junit/wiki/Assertions

O JUnit fornece vários métodos para asserções para vários tipos de dados primitivos e objeto e
arrays (de tipos primitivos ou de Objetos). A ordem dos parâmetros é valor esperado seguido pelo
valor encontrado no teste (valor corrente). Opcionalmente, o primeiro parâmetro pode ser um string
contendo uma mensagem que será emitida em caso de falha. Existe uma asserção ligeiramente
diferente, assertThat, a qual tem parâmetros de mensagem opcional de falha, o valor corrente, e um
objeto Matcher. Na asserção do tipo assertThat, o parâmetro valor encontrado aparece antes do
valor esperado, diferente dos outros tipos de asserção.

Por exemplo, a classe de testes a ser construída no roteiro de prática a seguir, contém diferentes
formas de cada um dos métodos de teste.

ROTEIRO DE PRÁTICA

1) Inicie o IDE NetBeans e crie um novo projeto de biblioteca de classe Java com o nome
TestandoAssertsJUnit.
2) Crie uma classe de teste JUnit (Novo->Teste JUnit ...) chamada AssertsJUnitTest.java no
pacote Testes dentro do nó Pacotes de Teste do projeto.
3) Edite o código da classe AssertsJUnitTest de modo que fique como o da figura a seguir, onde
se vê o método testArraysIguais
4) Faça clique com botão direito e o ponteiro do mouse sobre o nó da classe AssertsJUnitTest na
janela Projetos e, no menu suspenso que aparecerá, faça clique sobre o item de menu “Testar
arquivo”. Observe a janela Resultados do teste que aparecerá na parte inferior esquerda da
janela do IDE, e anote as mensagens que aparecem nela.
5) Edite a linha 14 do código de modo que fique assim: byte[] obtido = “tentativas”.getBytes();
Depois, faça clique com o ponteiro do mouse no ícone do botão Reexecutar, na janela
Resultados do teste, para comandar nova execução do código. Observe a janela Resultados do
teste e anote as mensagens que aparecem nela.

6) Edite o código fonte da classe AssertsJUnitTest para ficar como na figura a seguir, onde é
possível ver a anotação @Ignore antes da anotação @Test (veja também a linha de importação)
que precede o método TestArraysIguais e os métodos testAssertStringsIguais(),
testAssertFalso(), testAssertNaoNulo() e testAssertObjetosDiferentes().
7) Usando o botão Reexecutar, comande a execução dos novos métodos da classe e observe e
anote todas as mensagens que aparecem na janela Resultados do teste. Veja, através das
mensagens que apareceram, o efeito da anotação @Ignore e escreva sua conclusão sobre o
efeito dessa anotação.
8) Edite novamente o código da classe de teste, acrescentando os métodos que aparecem na figura
a seguir após o método testAssertObjetosDiferentes(). Depois, reexecute o teste e anote todas
as mensagens exibidas na janela Resultados do teste.

9) Escreva suas conclusões sobre as funções de cada uma das formas de asserções assert usadas
neste roteiro, com base nas observações dos resultados dos diversos testes.
10) Mostre todas as anotações que você fez e suas conclusões ao professor.
11) Feche o projeto e o IDE.

Você também pode gostar