1
resposta

Neste exemplo, a rotina está pegando sempre o primeiro e não o último lance.

Neste exemplo, o método dobraLance está pegando sempre o primeiro e não o último lance.

1 resposta

Olá Ivomar,

Na realidade o teste está pegando o último lance dado pelo usuário, como o usuário que foi passado para o método dobraLance foi o steveJobs e ele o último lance anterior dele foi o primeiro o sistema obtem o primeiro lance para dobrar.

    @Test
    public void deveDobrarOUltimoLanceDado() {
        Leilao leilao = new Leilao("Macbook Pro 15");
        Usuario steveJobs = new Usuario("Steve Jobs");
        Usuario billGates = new Usuario("Bill Gates");

        leilao.propoe(new Lance(steveJobs, 2000));
        leilao.propoe(new Lance(billGates, 3000));
        leilao.dobraLance(steveJobs);

        assertEquals(4000, leilao.getLances().get(2).getValor(), 0.00001);
    }

O teste então compara para ver se o 3º lance (na posição do índice 2) está com o dobro de valor do primeiro lance do usuário (de 2000), o 0.00001 argumento é usado para comparação de números de ponto flutuante, onde ele representa a diferença entre os dois números nos quais eles ainda podem ser considerados iguais.

Isso pode ser visto aqui: Assert (JUnit)