2
respostas

Criaçao do teste com assertEquals

Como o assertThat esta depreciado, fiz o teste com AssertEquals, porem o mesmo está dando erro sendo que o retorno está correto:

IErro no teste com assertEquals

2 respostas

Olá, Ludmilla, como vai?

Pelo erro apresentado no teste com assertEquals, o problema parece estar relacionado ao formato da string retornada pela função formata(). Visualmente, os valores esperados e atuais parecem iguais, mas pode haver diferenças sutis, possivelmente causadas por caracteres invisíveis, como espaços extras ou diferenças na codificação do texto.

Para resolver isso, recomendo verificar e ajustar os seguintes pontos:

1 - Remova espaços extras:

Garanta que a string retornada e a esperada não tenham espaços desnecessários. Você pode usar o método .trim() para eliminar espaços no início e no fim das strings:

assertEquals("R$ 200,00", moedaFormatada.trim());

2 - Verifique a codificação:

Certifique-se de que o método formata() da classe FormatadorDeMoeda está configurado para utilizar o locale correto (Brasil). Utilize NumberFormat para garantir o formato apropriado, algo como o trecho abaixo:

import java.text.NumberFormat;
import java.util.Locale;

public class FormatadorDeMoeda {
    public String formatar(double valor) {
        NumberFormat formatoBrasileiro = NumberFormat.getCurrencyInstance(new Locale("pt", "BR"));
        return formatoBrasileiro.format(valor);
    }
}

3 - Teste a saída diretamente:

Para confirmar que o problema não é causado pelo assertEquals, imprima os valores das strings no console e compare diretamente:

System.out.println("Esperado: " + "R$ 200,00");
System.out.println("Atual: " + moedaFormatada);

4 - Alternativa com assertTrue:

Caso o problema persista, utilize assertTrue para comparar os valores de forma mais flexível:

assertTrue("R$ 200,00".equals(moedaFormatada.trim()));

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Fiz todas as tratativas acima sugeridas, porém continua dando o mesmo resultado. Quando cliquei para ver a diferença, aparece isso:

Comparando valores