AssertionError - O que dizer deste código?

4 respostas
A

@Test public void testShouldSum() { System.out.println("Test 1: shouldSum"); try{ assertEquals(new Double(calculator.sum(2, 2)), new Double(45.0)); }catch (Error e) { System.out.println("Erro durante soma!"); } }

4 Respostas

emanuelCruz

Este assertEquals(new Double(calculator.sum(2, 2)), new Double(45.0)); vai verificar se o resultado de calculator.sum(2,2) é igual a 45.

Mas ví uns “probleminhas”:
1 - Não sei o porque do try catch. Provavelmente este metodo calculator.sum() gera uma excessão verificada, o que não é recomendado.
2 - Os parametros do assertEquals estão trocados (embora não gere diferença no teste), o correto seria assertEquals(valorEsperado, valorASerTestado)
3 - Para que os System.out… ? Lembre-se que o JUnit vai validar se houve erro ou não durante a execução do teste.

R

Assim seria o correto. Você não precisa fazer o catch:

andredecotia:
@Test public void testShouldSum() { assertEquals(new Double(calculator.sum(2, 2)), new Double(45.0)); } }

Se você fizer esse catch e tratar o erro. O JUnit vai considerar o teste como válido.
Você precisa deixar a exceção aparecer isso irá gerar um error test.
Se não gerar exceção e a asserção é invalida irá gerar um fail test.

A

O que voces costumam fazer com o error gerado pelo JUnit… Salvam?

R

Consertar e rodar o teste novamente até o teste passar.
Se há testes quebrados sua aplicação está quebrada. Caso contrário, esse teste é inútil.

Criado 18 de abril de 2011
Ultima resposta 19 de abr. de 2011
Respostas 4
Participantes 3