Pergunta
Eu tenho dois testes para verificar o arremesso de exceção esperado. Estou usando o Junit 4 e tenho a seguinte sintaxe.
@Test(expected=IllegalArgumentException.class)
public void testSomething(){
..........
}
Um dos testes falha, embora ilegalargumentException seja jogado e o outro passa. Alguma ideia do que está faltando ?? Modifiquei o teste que não está seguindo e passa.
public void testSomething(){
try{
............ //line that throws exception
fail();
}catch(IllegalArgumentException e) {
}
}
Solução
Prithis apenas algo que notei que o segundo teste não possui @test anotação. O JUNIT4 não executa testes que não são anotados, mesmo que os nomes do método comecem com o teste *** (a menos que você realmente estenda a classe Testcase, nesse caso, ele se comporta como um Junit3.x Testcase)
Talvez seja esse o caso de que o teste não esteja funcionando (e, portanto, faz você pensar que ele passa)?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow