domingo, 10 de julho de 2016

JUnit #3

É importante nos testes abranger também as situações que precisam gerar exceções, para testar se as exceções que precisavam ser disparadas em determinado momento realmente serão.

No JUnit, como isso pode ser feito?



No JUnit isso pode ser feito colocando ao lado da anotação @Test um (expected=nomeDaException.class)

Fazendo isso, o teste será bem sucedido se em qualquer lugar dentro do método de caso de teste acontecer a exceção esperada.

Se eu preciso na verdade conferir se a exceção acontece até antes de uma linha em particular, posso colocar fail(); em alguma linha e o teste é considerado falho se a exceção não acontecer até antes daquele ponto. O teste será bem sucedido se a exceção citada em (expected=nomeDaException.class) ocorrer antes daquele ponto.


ex:

@Test (expected=nomeDaException.class)
public void exemploTesteJUnit(){

try{
obj.metodo(-1);
fail();

} catch (Exception e){
//bla bla bla
}

}


Se é esperado que a linha obj.metodo(-1) lance a exceção do tipo nomeDaException.class, caso essa exceção seja disparada por esta linha o método será considerado bem sucedido, devido ao (expected=nomeDaException.class) indicado ao lado da anotação @Test. 
Mas se chegar na linha onde está o método fail() e a exceção esperada não tiver ainda sido lançada, o teste terá falhado.

Nenhum comentário:

Postar um comentário