@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!");
}
}
AssertionError - O que dizer deste código?
4 Respostas
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.
Assim seria o correto. Você não precisa fazer o catch:
@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.
O que voces costumam fazer com o error gerado pelo JUnit… Salvam?
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.