Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Junit - Bug do Palindromo

eu fiz os testes sugeridos para a classe Palindromo já acertada porém eu não a alterei e o resultado veio como se ela não tivesse os erros....

9 respostas

Fala ai Armando, tudo bem ?

Mostra seu código ai para gente e os seus testes também

Posta o código pra nos!

ok, mas apenas copiei os códigos do exemplo! e é justamente por isso que eu acho que deveria dar erro, já que eu não consertei o codigo da classe do Palindromo...

package br.com.caelum.leilao.teste;

public class Palindromo {
    public boolean ehPalindromo(String frase) {

        String fraseFiltrada = frase.toUpperCase().replace(" ", "").replace("-", "");

        for(int i = 0; i < fraseFiltrada.length(); i++) {
            if(fraseFiltrada.charAt(i) != fraseFiltrada.charAt(fraseFiltrada.length() -(i+1))) {
                return false;
            }
        }

        return true;
    }

}
insira seu código aqui
package br.com.caelum.leilao.teste;

import org.junit.Assert;
import org.junit.Test;

public class TesteDoPalindromo {

    @Test
    public void deveIdentificarPalindromoEFiltrarCaracteresInvalidos() {
        Palindromo p = new Palindromo();

        boolean resultado = p.ehPalindromo(
            "Socorram-me subi no onibus em Marrocos");
        Assert.assertTrue(resultado);
    }

    @Test
    public void deveIdentificarPalindromo() {
        Palindromo p = new Palindromo();

        boolean resultado = p.ehPalindromo(
            "Anotaram a data da maratona");
        Assert.assertTrue(resultado);
    }

    @Test
    public void deveIdentificarSeNaoEhPalindromo() {
        Palindromo p = new Palindromo();

        boolean resultado = p.ehPalindromo(
            "E preciso amar as pessoas como se nao houvesse amanha");
        Assert.assertFalse(resultado);
    }
}

Armando,

Os códigos estão corretos, não entendi bem o seu problema :(

O código esta certinho! Apresenta alguma mensagem quando você compila?

Pelo que entendi, e percebi fazendo o exercício, o método edPalindromo não contém bug, não precisando de correções, ao contrário do que o exercício pede.

Os testes que executei são:

package br.com.alura.cap1.desafio;

import org.junit.Assert;
import org.junit.Test;

public class PalindromoTest {

    @Test
    public void testaEhPalindromo(){

        Palindromo palindromo = new Palindromo();

        Assert.assertTrue(palindromo.ehPalindromo("arara"));
        Assert.assertTrue(palindromo.ehPalindromo("Socorram-me subi no onibus em Marrocos"));
        Assert.assertTrue(palindromo.ehPalindromo("Anotaram a data da maratona"));

    }

    @Test
    public void testaNaoEhPalindromo(){

        Palindromo palindromo = new Palindromo();


        Assert.assertFalse(palindromo.ehPalindromo("teste"));
        Assert.assertFalse(palindromo.ehPalindromo("capítulo"));
    }

}

E abaixo segue o código original copiado do enunciado do exercício:

public class Palindromo {

    public boolean ehPalindromo(String frase) {

        String fraseFiltrada = frase
                .toUpperCase().replace(" ", "").replace("-", "");

        for(int i = 0; i < fraseFiltrada.length(); i++) {
            if(fraseFiltrada.charAt(i) != 
                    fraseFiltrada.charAt(fraseFiltrada.length() -(i+1))) {
                return false;
            }
        }

        return true;
    }
}
solução!

Exatamente isso, a solução foi só para você ver funcionar e praticar um pouco mais a questão de testes

Ahhhhh, isso foi pra você entender a lógica do programa e realizar os testes com a pratica.

Obrigado Cristiano Lopes Molin (também não tinha achado erro nenhum, mas gostaria de uma resposta mais honesta por parte dos moderadores/instrutores), exercício deveria ser revisado e não ficarem tentando dar este tipo de resposta: "a solução foi só para você ver funcionar e praticar um pouco mais a questão de testes" já que não foi isso o que pedia o enunciado do exercício.

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