Metodo fail() de TestCase

7 respostas
R

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.

7 Respostas

jgbt

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

R

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?

jgbt

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?

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

mister_m

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.

R

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

mister_m

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

R

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

Criado 17 de abril de 2005
Ultima resposta 18 de abr. de 2005
Respostas 7
Participantes 3