Metodo fail() de TestCase

Por favor, alguem poderia me explicar o metodo fail() da classe junit.framework.TestCase. Li a documentacao mas nao entendi bem como e onde usar.

Ele gera uma falha no testCase, dependendo da situação pode ser util.
o metodo fail() pode ser usado para testar uma condição que deveria dar erro e não aconteceu, algo assim:

public testXXX() {
  try {
    // faz um teste que deveria dar exception...
    Assert.fail();   
  }catch(Exception e) {
    Assert.assertTrue(true);
  }
}

vc testaria uma condição que deveria dar exception, caindo no bloco catch, se não gerar exceptio, cai no fail() e falahara o testCase.
esse é um dos usos.

[]'s

Deixa eu ver se entendi:
Ele gera uma falha, poderia ser usado entao num bloco try/catch para gerar uma excecao em try e fazer a execucao entrar no catch?

[quote=Rafa Abe]Deixa eu ver se entendi:
Ele gera uma falha, poderia ser usado entao num bloco try/catch para gerar uma excecao em try e fazer a execucao entrar no catch?[/quote]

isso… no exemplo que coloquei, onde ta o comentario, vc testaria um metodo por exemplo, passando parametros que deverial gerar uma exceção. se não gerar, vai passar pelo fail(), então seu metodo não fez o que deveria fazer(gerar exception). se gerar a exceção, não vai passar pelo fail(), vai direto para o bloco catch. com isso seu metddo fez o que vc esperava, ou seja gerou a exception.

[]'s

Não é bem isso :slight_smile: A idéia do fail(…) é ser usado para interromper a execução quando a linha em que ele é usado jamais deveria ter sido alcançada pelo código.

No exemplo dado, esperava-se que o método sempre lançasse uma exceção e a execução fosse para o catch. Se a exceção não foi lançada, isso é um erro, e logo usa-se o fail(…) para sinalizar isso.

O fail() serve entao para sinalizar um erro. No caso um trecho de codigo que nao deveria ser executado?

De forma resumida, sim. Mas existem pouquíssimos casos de uso diferentes do que foi dado como exemplo.

Obrigado pela força.
Estive vendo os códigos de teste do próprio JUnit e consegui entender melhor o funcionamento do método.

Valeu