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) {
 }
} 
Foi útil?

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
scroll top