Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

assertEquals is deprecated

Quando utilizo o método Assert.assertEquals passando os dois doubles, o Eclipse exibe a mensagem de método depreciado. Passando dois inteiros não acontece, por exemplo. Qual a razão? E a melhor forma de resolver?

Vi em um tópico aqui para fazer o import do método direto. Pesquisando, vi que algumas pessoas usam a sobrecarga passando um 0 como terceiro parâmetro:

Assert.assertEquals(valorEsperado, valorSomado,0);

Segue minha classe:

import org.junit.Assert;
import org.junit.jupiter.api.Test;

import model.Calculadora;

public class CalculadoraTest {


    @Test
    public void testSomarNumInteiroPositivo() {

        double valorEsperado = 14;        
        double valorSomado = Calculadora.somar(4, 10);

        //Assert.assertEquals(valorEsperado, valorSomado;
        Assert.assertEquals(valorEsperado, valorSomado,0);
    }

}
1 resposta
solução!

Oi Leticia,

Isso mesmo, no caso de utilizar o assertEquals para comparar doubles deve-se utilizar o método que recebe um terceiro parâmetro, que seria o delta.

Isso acontece por conta do problema de precisão que existe no float/double, para evitar problemas do teste falhar se houver uma diferença mímina entre os valores.

Exemplo:

double valorEsperado = 2.5;
double valorRetornado = metodoQualquer();
Assert.assertEquals(valorEsperado, valorRetornado);

Nesse exemplo anterior se o valor retornado do método fosse 2.499999999999 o teste falharia, mas ao fazer assim:

Assert.assertEquals(valorEsperado, valorRetornado, 0.1);

O teste passaria, pois a diferença entre os doubles não superou o delta de 0.1

Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software